컬렉션 프레임워크
배열의 단점을 개선한 클래스로 객체만 저장할 수 있습니다.
배열의 단점인 메모리 낭비를 피할수 있는 구조입니다.
동적인 크기 변경이 가능합니다.
자료를 효율적으로 정리하는것을 자료구조(Data structure)라 합니다.
자료구조 방법에는 Set계열, List계열, Map계열이 있습니다.
java는 java.util 패키지의 자바 컬렉션(JCF)에서 자료구조 방법을 제공합니다.
Set
- 순서가 없고 중복안됨
- HashSet, TreeSetSetTest
package collectiontest;
import java.util.*;
public class SetTest {
public static void main(String[] args) {
HashSet list=new HashSet();
list.add("lee");//0
list.clear();//모두 제거
list.add("cho");//1
list.add("kim");//2
list.add("chung");//3
list.add("min");//4
list.add("chung");//3과 동일
System.out.println("set 사이즈:"+list.size());//size()
System.out.println(list.contains("chung"));
list.remove("kim");//2제거
System.out.println("kim 제거후 set 사이즈:"+list.size());
System.out.println("Iterator객체 이용해서 set출력");
print(list);
System.out.println("배열을 이용해서 set출력");
print(list.toArray());
}
public static void print(Set set){
Iterator iter=set.iterator();
while(iter.hasNext()){
String str=(String)iter.next();
System.out.println(str);
}
}//
public static void print(Object [] obj){
int count=obj.length;
for(int i=0;i<count;i++){
System.out.println(obj[i]);
}
}//}
List
순서가 있고 중복이 가능합니다.
ArrayList, LinkedList, Vector
ListTest1
Vector의 정의 및 요소 검색, 크기 조절
모든 구현 인터페이스
Cloneable
Collection
List
RandomAccess
Serializable
직계의 기존의 서브 클래스
Stack
SearchDelete.java
Vector의 이용 예
Sungjuk.java
VectorTest2.java
java.util.ArrayList
Vector와 같은 목적을 가지고 있으며 기능이 비슷합니다.
Vector와의 차이점은 네트워크를 통한 객체 공유시 동기화 처리가 되어 있지 않습니다.
속도는 Vector보다 빠른 속도를 가지고 있습니다. 굳이 객체를 스레드를 이용해 공유할 경우가 아니면 ArrayList 사용을 권장합니다.
모든 구현 인터페이스
Cloneable
Collection
List
RandomAccess
Serializable
ArrayListTest.java
ArrayListTest.java
Map
Key, value 한쌍
HashMap, Hashtable
put 메서드로 입력합니다.
중복된 키 값을 허용하지 않습니다. 만약 사용하게되면 기존의 값이 삭제됩니다.
검색 결과가 없으면 null을 리턴합니다.
MapTest
java.lang.Object
모든 구현 인터페이스
Cloneable
Map
Serializable
직계의 기존의 서브 클래스
Properties
UIDefaults
TestHashTable.java
Properties
속성값 부여를 목적으로 합니다.
특정 객체 생성시 생성자에 초기값으로 속성값을 주는 역활을 합니다.
ProTest.java
Last updated