데이터 타입의 종류

 

[표4.1] 오라클에서 지원하는 데이터 타입의 종류

 

 

헤쉬테이블(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개로 증가

Legacy





n백터(Vector)는 리스트를 구현했고 해쉬테이블(HashTable)Map을 구현


n백터와 해쉬테이블은 예전부터 사용해 오던 자료구조라 레거시(Legacy)라 부른다


n이 둘은 기존 사용 메서드와 JCFList, Map에서 제공하는 모든 메서드를 갖고 있다

+ Recent posts