헤쉬테이블(HashTable) 사용 예(1)




import java.util.Hashtable;

public class HashtableTest {

public static void main(String[] args) {

Hashtable hashtable = new Hashtable();


//1. hashtable에 객체의 삽입 

hashtable.put("Name", new String("홍길동"));

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

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

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

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


//키 값을 이용하여 객체 추출

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

if (name != null) {

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

}

 

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

if (age != null) {

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

}

}

}

헤쉬테이블(HashTable)





nHashTableMap 인터페이스를 구현

n해시테이블을 내부적으로 구현하여 데이터 저장의 역할을 함

n키와 값을 한 쌍으로 대입하므로 키를 이용해 값을 찾을 수 있다

n유일한 키 값을 가지고 있음

- 객체를 삽입할때 특별한 키 값 같이 입력

- 객체를 추출할 때 키값을 이용하여 추출

- put(Object key, Object value)메서드로 객체 삽입

- get(Object key)메서드로 키가 맵핑된 값 리턴


 

Hashtable hashtable = new Hashtable();

hashtable.put(Name, new String(홍길동));

hashtable.put(Age, new Integer(29));

 

String name = (String) hashtable.get(Name);

Integer age = (Integer)hashtable.get(Age);

 


벡터(Vector) 사용 예(2)




import java.util.*;

public class StudentVectorTest {

public static void main(String[] args) {

Vector v=new Vector();     //capacity 10 increasing *2

      //Vector v=new Vector(5);  //capacity 5 increasing *2

      //Vector v=new Vector(5,5);//capacity 5 increasing 5

      v.add(new Student("Jee",1,"Seoul"));//0

      v.clear();//모두 제거

      v.add(new Student("Gong",2,"Seoul"));//1

      v.add(new Student("Song",3,"Seoul"));//2

      v.add(new Student("Lee",4,"Koyang"));//3

      v.add(new Student("Lee",4,"Koyang"));//3과 중복허용

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

      System.out.println(v.contains(new Student("Lee",25,"Koyang")));


     Student stu=(Student)v.elementAt(2);//index0부터

      System.out.println(stu.getId()+"  "+stu.getName()+"

 "+stu.getAddr());

      //모든 elements 출력하기

      Enumeration enums=v.elements();

      while(enums.hasMoreElements()){

      Student stus=(Student)enums.nextElement() ;

      System.out.println(stus.getId()+"  "+stus.getName()+"  "+

                              stus.getAddr());


     }

}


}

벡터(Vector) 사용 예(2)




public class Student implements Cloneable{

private String name;

private int id;

private String addr;

public Student(String name, int id,String addr) {

this.name=name;

this.id=id;

this.addr=addr;

}//Student

 

public String getAddr() { return addr; }

public int getId() { return id; }

public String getName() { return name; }

public void setAddr(String string) { addr = string; }

public void setId(int i) { id = i; }

public void setName(String string) { name = string; }

 

public String toString(){

return name+"   "+id+"    "+addr;

}//toString

public Object clone() {

try{

return super.clone();

}catch(CloneNotSupportedException e) {

return this;

}

}//clone

 

public boolean equals(Object obj) {

boolean isE=false;

Student temp=(Student)obj;

if(temp.getName().equals(name) && temp.getId()==id

&& temp.getAddr().equals(addr)) {

isE=true;

}

return isE;

}//equals

 

public int hashCode() {

int temp=0;

temp=name.hashCode()+addr.hashCode()+id+37;

return temp;

}//hashCode


}

벡터(Vector) 사용 예(1)




import java.util.Vector;


public class VectorTest {

public static void main(String[] args) {

Vector vector = new Vector();

System.out.println("생성직후의 size : " + vector.size());


//1. vector객체에 데이터4개 삽입

vector.addElement(new String("망아지"));

vector.addElement(new String("송아지"));

vector.addElement(new String("강아지"));

vector.addElement(new String("병아리"));

System.out.println("데이터 삽입후의 size : " + vector.size());


//2. vector의 요소 가져오기

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

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

System.out.println("vector" + i + "번째 :" + temp);

}

}

}

벡터(Vector)






nCollection인터페이스 자체를 바로 구현한 클래스


n객체를 삽입하고 순서대로 추출하는 기법 사용


- addElement(Object obj)메서드로 객체 삽입

- elementAt()메서드로 index순으로 데이터 차례로 추출

- 객체를 삽입할 때는 Object형으로 자동 업캐스팅

- 객체를 다시 추출할 때는 원래의 형으로 다운캐스팅 필요


Vector vector = new vector();

vector.addElement(new Integer(100));

vector.addElement(new String(babo));

 

Integer a = (Integer)vector.elementAt(0);

String bob = (String)vector.elementAt(1);

 





n백터는 세 개의 생성자가

- Vector(), Vector(5), Vector(5,5)

- 백터는 기본적으로 10개의 방을 만듬

- 10개가 넘으면 자동으로 20, 40, 80개로 증가

Map




nKeyValue를 한 쌍으로 대입

- 사전처럼 단어를 통해 뜻을 찾을 수 있다

- 한 개의 키에 한 개의 값 맵핑


n키는 중복될 수 있자 없다


ncollection 클래스 상속하지 않음

 

 

 

 




import java.util.*;

public class MapIterTest1 {


  public static void main(String[] args) {

  HashMap list=new HashMap();

  list.put("0","lee");//0

  list.clear();//모두 제거

  list.put("1","cho");//1

  list.put("2","kim");//2

  list.put("3","chung");//3

  list.put("4","min");//4

  list.put("3","jung");//3과 동일 에러

  System.out.println(list.size());//size()

  System.out.println(list.containsKey("3"));

  list.remove("2");//2제거 key를 이용

  System.out.println(list.size());


 print(list);//Set 만들기

   }

   public static void print(Map sets){

  Set set=sets.keySet();//key값을 Set으로

  Iterator iter=set.iterator();

  while(iter.hasNext()){

  String key=(String)iter.next();

  System.out.println(key+"  "+sets.get(key));//value

  }

   }//

}

 

 

 

+ Recent posts