¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦6Àå ¹è¿­ Ä÷º¼Ç ¿­°ÅÀÚ  6.4.3 Vector¿Í Hashtable  

 

 

6.4.3 Vector¿Í Hashtable

Vector¿Í HashtableÀº ³»ºÎÀûÀ¸·Î CollectionÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇϰí ÀÖ´Â ´ëÇ¥ÀûÀÎ ³ðÀÔ´Ï´Ù. Vector´Â CollectionÀÚü¸¦ ¹Ù·Î ±¸ÇöÇÑ Å¬·¡½ºÀ̸ç, HashtableÀº ³»ºÎÀûÀ¸·Î CollectionÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. °´Ã¼¸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù´Â ¸é¿¡¼­´Â ÀÌ µÎ Ŭ·¡½º´Â ºñ½ÁÇÏÁö¸¸ ³»ºÎÀûÀÎ ±¸Çö°ú ¾à°£ÀÇ »ç¿ë¹æ¹ýÀÌ ´Ù¸¨´Ï´Ù.

 

HashtableÀÇ Æ¯¼ºÀ» º»´Ù¸é ´Ü¿¬ÄÚ À¯ÀÏÇÑ Å°°ªÀ» °¡Áö°í ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ ¸»Àº °´Ã¼¸¦ »ðÀÔÇÒ ¶§ Ưº°ÇÑ Å°°ªÀ» °°ÀÌ ÀÔ·ÂÇϰí, ±×¸®°í °´Ã¼¸¦ ÃßÃâÇÒ ¶§¿¡´Â ۰ªÀ¸·Î °´Ã¼¸¦ ÃßÃâÇÏ´Â ±â¹ýÀ» »ç¿ë ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Áï, °´Ã¼¸¦ ÀúÀåÇÒ ¶§ ²¿¸®Ç¥¸¦ Çϳª ºÙ¿© µÎ´Â °ÍÀÌÁö¿ä. ±×¸®°í ÀÌ ²¿¸®Ç¥¸¦ ÀÌ¿ëÇØ¼­ °´Ã¼¸¦ ´Ù½Ã ¾ò¾î¿À´Â °ÍÀÔ´Ï´Ù. ²¿¸®Ç¥ ¶ÇÇÑ °´Ã¼ÀÇ Çü½ÄÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. º¸ÅëÀÇ ²¿¸®Ç¥(۰ª)´Â ½ºÆ®¸µÇüÀ» »ç¿ëÇÕ´Ï´Ù.

 

VectorÀÇ °æ¿ì¿¡´Â À̿ʹ ´Þ¸® °´Ã¼¸¸À» »ðÀÔÇÏ°í °´Ã¼¸¦ ¼ø¼­´ë·Î ÃßÃâÇÏ´Â ±â¹ýÀ» »ç¿ëÇÕ´Ï´Ù. ´Ü¼øÇÑ ÀúÀå°ø°£À¸·Î¸¸ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. º¤ÅÍ¿Í ÇØ½ÃÅ×À̺íÀÇ Â÷ÀÌÁ¡À» Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°½À´Ï´Ù.

 

º¤ÅÍ¿Í ÇØ½ÃÅ×À̺íÀÇ Â÷ÀÌÁ¡

n        º¤ÅÍ: µ¥ÀÌÅÍÀÇ ÀÔ·ÂÇÑ ¼ø¼­¿¡ µû¶ó¼­ µ¥ÀÌÅÍ ÃßÃâ, index·Î ÃßÃâ

n        ÇØ½ÃÅ×À̺í: ۰ª°ú µ¥ÀÌÅ͸¦ °°ÀÌ ÀÔ·ÂÇϰí ۰ªÀ¸·Î µ¥ÀÌÅ͸¦ ÃßÃâÇÒ ¼ö ÀÖ´Ù.

n        ¹°·Ð, ÇØ½ÃÅ×À̺íÀº º¤ÅÍÀÇ ±â´ÉÀ» ±×´ë·Î °¡Áö°í ÀÖ´Ù.

 

±×·³ Vector ÀÇ ÃÊ °£´Ü ¿¹Á¦¸¦ Çѹø »ìÆì º¼±î¿ä

 

VectorTest.java

import java.util.Vector;

public class VectorTest {

   public static void main(String[] args) {

                           Vector v = new Vector();

                           System.out.println("»ý¼ºÁ÷ÈÄÀÇ size: " + v.size());

                           //1. º¤ÅͰ´Ã¼¿¡ µ¥ÀÌÅÍ4°³ »ðÀÔ

                           v.addElement(new String("¸Á¾ÆÁö"));

                           v.addElement(new String("¼Û¾ÆÁö"));

                           v.addElement(new String("°­¾ÆÁö"));

                           v.addElement(new String("º´¾Æ¸®"));

                           System.out.println("µ¥ÀÌÅÍ »ðÀÔÈÄÀÇ size: " + v.size());

                           //2. VectorÀÇ ¿ä¼Ò °¡Á®¿À±â

                           for(int i=0; i< v.size(); i++){

                                        String temp = (String)v.elementAt(i);

                                        System.out.println("º¤ÅÍÀÇ " + i + "¹øÂ°:" + temp);

                           }

   }

}

C:\examples\6. Array>javac VectorTest.java

 

C:\examples\6. Array>java VectorTest

»ý¼ºÁ÷ÈÄÀÇ size: 0

µ¥ÀÌÅÍ »ðÀÔÈÄÀÇ size: 4

º¤ÅÍÀÇ 0¹øÂ°:¸Á¾ÆÁö

º¤ÅÍÀÇ 1¹øÂ°:¼Û¾ÆÁö

º¤ÅÍÀÇ 2¹øÂ°:°­¾ÆÁö

º¤ÅÍÀÇ 3¹øÂ°:º´¾Æ¸®

 

 ÀÏ´Ü Vector°´Ã¼¸¦ Çϳª »ý¼ºÇÕ´Ï´Ù.

 

n        Vector v = new Vector();

 

±×¸®°í Vector v¿¡ ½ºÆ®¸µ °´Ã¼ 4°³¸¦ »ðÀÔÇÕ´Ï´Ù. µ¥ÀÌÅ͸¦ »ðÀÔÇÒ ¶§´Â addElement(Object obj)¸Þ¼­µå¸¦ ÀÌ¿ëÇÕ´Ï´Ù. ±×¸®°í ¸Å°³º¯¼ö´Â °´Ã¼ÀÇ Çü½ÄÀ» ÀÌ¿ëÇÕ´Ï´Ù.

 

n        v.addElement(new String("¸Á¾ÆÁö"));

n        v.addElement(new String("¼Û¾ÆÁö"));

n        v.addElement(new String("°­¾ÆÁö"));

n        v.addElement(new String("º´¾Æ¸®"));

 

³Ö¾ú´Ù¸é ´Ù½Ã »Ì¾Æ¼­ º¸¾Æ¾ßÁÒ. °´Ã¼ÀÇ »ðÀÔµÈ ¼ø¼­¿¡ µû¶ó¼­ ´Ù½Ã µ¥ÀÌÅ͸¦ ÃßÃâÇÕ´Ï´Ù.

 

n        for(int i=0; i< v.size(); i++){

n         String temp = (String)v.elementAt(i);

n         System.out.println("º¤ÅÍÀÇ " + i + "¹øÂ°:" + temp);

n        }

 

º¤ÅÍ ³»¿¡ ÀÖ´Â °´Ã¼ÀÇ ¼ö´Â size()¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ±× ¼ö¸¸Å­ elementAt¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© index¼øÀ¸·Î Â÷·Ê´ë·Î µ¥ÀÌÅ͸¦ ÃßÃâÇÕ´Ï´Ù. ÇÏÁö¸¸ ÃßÃâµÈ µ¥ÀÌÅÍ´Â ObjectÇüÀ̱⠶§¹®¿¡ ¿ø·¡ÀÇ ÇüÀ¸·Î Çüº¯È¯À» ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.

 

n         String temp = (String)v.elementAt(i);

 

À§ÀÇ ¿¹¿¡¼­ Vector¸¦ óÀ½ »ý¼ºÇßÀ» ¶§ size´Â 0ÀÔ´Ï´Ù. ±×¸®°í µ¥ÀÌÅ͸¦ 4°³ »ðÀÔÇßÀ» ¶§ÀÇ °³¼ö´Â 4ÀÔ´Ï´Ù. ÀÌ ´Ü¼øÇÑ ¼Ò½º´Â º¤ÅͶó´Â °ÍÀÌ ¹«¾ùÀ» ÇÏ´Â °ÍÀÎÁö Á¤È®ÇÏ°Ô º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. º¤Å͸¦ º¸´Ù ´Ù¾çÇÏ°Ô ÀÌ¿ëÇϰí ÀÖ´Â ¿¹Á¦¸¦ Çϳª »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

VectorTest2.java

import java.util.Vector;

 

public class VectorTest2 {

   public static void main(String[] args) {

      Vector v = new Vector();

      //º¤ÅͰ´Ã¼¿¡ µ¥ÀÌÅÍ »ðÀÔ

      v.addElement(new Character('A'));

      v.addElement(new String("±À¹ðÀÌ"));

      v.addElement(new Integer(100));

      v.addElement(new Integer(200));

v.insertElementAt(new Float(3.141592), 1); //1¹øÂ°¿¡ Áß°£»ðÀÔ

      v.setElementAt(new String("Set"), 3); //3¹øÂ°Á¸ÀçÇÏ´Â °Í Á¦°ÅÈÄ ´Ù½Ã »ðÀÔ(update)

 

      System.out.println("size: " + v.size());

     

  System.out.println("º¤ÅÍÀÇ0¹øÂ°:" + (Character)v.elementAt(0));

      System.out.println("º¤ÅÍÀÇ1¹øÂ°:" + (Float)v.elementAt(1));

      System.out.println("º¤ÅÍÀÇ2¹øÂ°:" + (String)v.elementAt(2));

      System.out.println("º¤ÅÍÀÇ3¹øÂ°:" + (String)v.elementAt(3));

      System.out.println("º¤ÅÍÀÇ4¹øÂ°:" + ((Integer)v.elementAt(4)).toString());

 

      if(v.contains(new String("Set"))){

         Integer integer = new Integer(v.indexOf("Set"));

         System.out.println("Index of String(\"Set\"): " + integer.toString());

      }

   }

}

C:\examples\6. Array>javac VectorTest2.java

 

C:\examples\6. Array>java VectorTest2

size: 5

º¤ÅÍÀÇ0¹øÂ°:A

º¤ÅÍÀÇ1¹øÂ°:3.141592

º¤ÅÍÀÇ2¹øÂ°:±À¹ðÀÌ

º¤ÅÍÀÇ3¹øÂ°:Set

º¤ÅÍÀÇ4¹øÂ°:200

Index of String("Set"): 3

 

ÀÌ ÇÁ·Î±×·¥ÀÇ ÀýÂ÷´Â ´ÙÀ½°ú °°½À´Ï´Ù.

 

n         º¤Å͸¦ »ý¼ºÇÑ´Ù.

             Vector v = new Vector();

n         º¤ÅÍ¿¡ 4°³ÀÇ °´Ã¼¸¦ »ðÀÔÇÑ´Ù.

             v.addElement(new Character('A'));

             v.addElement(new String("±À¹ðÀÌ"));

             v.addElement(new Integer(100));

             v.addElement(new Integer(200));

n         º¤ÅÍÀÇ 1¹øÂ° ÀÚ¸®¿¡ °´Ã¼¸¦ »ðÀÔÇÑ´Ù.

             v.insertElementAt(new Float(3.141592), 1); //1¹øÂ°¿¡ Áß°£»ðÀÔ

n         º¤ÅÍÀÇ 3¹øÂ° ÀÚ¸®ÀÇ °ÍÀ» Áö¿ì°í ´Ù¸¥ °´Ã¼·Î ¾÷µ¥ÀÌÆ®ÇÑ´Ù.

             v.setElementAt(new String("Set"), 3); //3¹øÂ°Á¸ÀçÇÏ´Â °Í Á¦°ÅÈÄ ´Ù½Ã »ðÀÔ(update)

n         º¤ÅÍÀÇ µ¥ÀÌÅ͸¦ ¸ðµÎ ¾ò¾î³»¾î ¿ø·¡ÀÇ ÇüÀ¸·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÑ´Ù.

             System.out.println("º¤ÅÍÀÇ0¹øÂ°:" + (Character)v.elementAt(0));

             System.out.println("º¤ÅÍÀÇ1¹øÂ°:" + (Float)v.elementAt(1));

             System.out.println("º¤ÅÍÀÇ2¹øÂ°:" + (String)v.elementAt(2));

             System.out.println("º¤ÅÍÀÇ3¹øÂ°:" + (String)v.elementAt(3));

             System.out.println("º¤ÅÍÀÇ4¹øÂ°:" + ((Integer)v.elementAt(4)).toString());

n         º¤ÅÍ¿¡ ƯÁ¤°´Ã¼°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.

             v.contains(new String("Set")) ÀÖ´Ù¸é true ¾ø´Ù¸é false

n         º¤ÅÍ¿¡ ã°íÀÚÇÏ´Â °´Ã¼¸¦ ÀÌ¿ëÇÏ¿© ÇØ´ç°´Ã¼¸¦ º¤ÅÍ¿¡¼­ ã´Â´Ù.

             v.indexOf("Set"));

 

º¤ÅÍ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿©·¯°¡Áö ¸Þ¼­µåÀÇ »ç¿ë¹æ¹ýÀ» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ´ÙÀ½À¸·Î HashtableÀÇ ¿¹¸¦ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

HashtableTest.java

import java.util.Hashtable;

public class HashtableTest {

             public static void main(String[] args) {

             Hashtable h = new Hashtable();

             //1. ÇØ½ÃÅ×ÀÌºí¿¡ °´Ã¼ÀÇ »ðÀÔ

             h.put("Name", new String("È«±æµ¿"));

             h.put("Age", new Integer(27));

             h.put("Tel", new String("02-1111-2222"));

             h.put("Handphone", new String("017-777-9999"));

             h.put("Etc", new String("I'm a boy"));

             //۰ªÀ» ÀÌ¿ëÇÏ¿© °´Ã¼ ÃßÃâ

             String name = (String)h.get("Name");

             if (name != null) {

                           System.out.println("Name = " + name);

             }

             Integer age = (Integer)h.get("Age");

             if (age != null) {

                           System.out.println("Age = " + age.intValue());

             }

   }

}

C:\examples\6. Array>javac HashtableTest.java

C:\examples\6. Array>java HashtableTest

Name = È«±æµ¿

Age = 27

 

ÇØ½ÃÅ×À̺íÀº µ¶Æ¯ÇÏ°Ô Å°°ª°ú °´Ã¼¸¦ ÇÔ²² ÁÖ¾î ۰ªÀ¸·Î °´Ã¼¸¦ ÃßÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÏ´Ü, Á¦ÀÏ ¸ÕÀú Hashtable°´Ã¼¸¦ »ý¼ºÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

 

n         Hashtable h = new Hashtable();

 

ÇØ½ÃÅ×ÀÌºí¿¡ ۰ª°ú °´Ã¼¸¦ µ¿½Ã¿¡ Áָ鼭 °´Ã¼ 5°³¸¦ »ðÀÔÇϰí ÀÖ½À´Ï´Ù. ÀÌ ¶§ »ðÀÔÇÏ´Â ¿ø¸®´Â Vector¿¡ µ¥ÀÌÅ͸¦ »ðÀÔÇÏ´Â °Í°ú °°ÀÌ UpcastingÀÇ ¿ø¸®¸¦ ÀÌ¿ëÇØ¼­ µ¥ÀÌÅ͸¦ »ðÀÔÇϰí ÀÖ½À´Ï´Ù. ¸Å°³º¯¼ö´Â ObjectÇüÀ̱⠶§¹®¿¡ StringÇü°ú IntegerÇü °´Ã¼ ¸ðµÎ putÀÇ ¸Å°³º¯¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. À̰ÍÀÇ ÀåÁ¡Àº °´Ã¼°¡ ¾î¶°ÇÑ ÇüÀÎÁö ¸ô¶óµµ °´Ã¼¸¦ »ðÀÔÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô »ý°¢ÇØ º¸ÁÒ. HashtableÀ» ¸¸µç »ç¶÷Àº ½ÇÇà½Ã¿¡ »ç¿ëÀÚ°¡ ¾î¶² °´Ã¼¸¦ ³ÖÀ» °ÍÀ̶ó°í °¡Á¤ÇÒ±î¿ä? ¸ð¸¦ ÀÏÀÌÁÒ. Áï, ½ÇÇà½Ã¿¡ ¾î¶°ÇÑ °´Ã¼°¡ ÀԷµÉÁö ¸ô¶óµµ UpcastingÀ» ÀÌ¿ëÇÏ¸é ¸ðµÎ ¹Þ¾Æ µéÀÏ ¼ö ÀÖ´Ù´Â ¿ø¸®¸¦ ÀÌ¿ëÇÑ °ÍÀÔ´Ï´Ù. ´ÙÀ½Àº Hashtable¿¡ °´Ã¼¸¦ »ðÀÔÇÏ´Â °ÍÀ» º¸¿© ÁÖ°í ÀÖ½À´Ï´Ù.

 

n         h.put("Name", new String("È«±æµ¿"));

n         h.put("Age", new Integer(27));

n         h.put("Tel", new String("02-1111-2222"));

n         h.put("Handphone", new String("017-777-9999"));

n         h.put("Etc", new String("I'm a boy"));

 

´ÙÀ½Àº ۰ªÀ» ÀÌ¿ëÇØ¼­ °´Ã¼¸¦ ¹Þ¾Æ ³»¾î¼­ Ãâ·ÂÇÕ´Ï´Ù. ÀԷ½à ³»ºÎ¿¡¼­ ObjectÇüÀ¸·Î Çüº¯È¯À» Çϱ⠶§¹®¿¡ ¸®ÅÏÇüÀº ObjectÇüÀÔ´Ï´Ù. DowncastingÀ» ÅëÇØ¼­ ´Ù½Ã ¿ø·¡ÀÇ ÇüÀ¸·Î º¹¿øÇÕ´Ï´Ù. ´ÙÀ½Àº Hashtable¿¡¼­ °´Ã¼¸¦ ¾ò¾î ¿ø·¡ÀÇ ÇüÀ¸·Î º¹¿ø ½Ã۰í ÀÖ´Â °ÍÀ» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.

 

n        String name = (String)h.get("Name");

n        Integer age = (Integer)h.get("Age");

 

Áö±Ý±îÁö ¿©·¯ºÐÀº ³»ºÎÀûÀ¸·Î CollectionÀ» »ç¿ëÇÏ´Â Vector¿Í HashtableÀÇ »ç¿ë¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸¾Ò½À´Ï´Ù. ´ÙÀ½ Àý¿¡¼­´Â ¿­°ÅÀÚ¸¦ ÀÌ¿ëÇÑ Hashtable °ú Vector¸¦ ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ
ÀúÀÚ:ÃÖ¿µ°ü