컬렉션 프레임워크

  • 배열의 단점을 개선한 클래스로 객체만 저장할 수 있습니다.

  • 배열의 단점인 메모리 낭비를 피할수 있는 구조입니다.

  • 동적인 크기 변경이 가능합니다.

  • 자료를 효율적으로 정리하는것을 자료구조(Data structure)라 합니다.

  • 자료구조 방법에는 Set계열, List계열, Map계열이 있습니다.

  • java는 java.util 패키지의 자바 컬렉션(JCF)에서 자료구조 방법을 제공합니다.

Set

- 순서가 없고 중복안됨
- HashSet, TreeSet

SetTest

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