본문 바로가기

Programming/JAVA

JAVA Collection API

Collection 인터페이스

1. Collection API의 최 상위 계층의 인터페이스다.

2. Set, List, Heap 인터페이스의 부모 인터페이스.

3. 객체를 저장하고 삭제, 검색하는 여러가지 메소드를 제공한다.

4. Collection에 저장되는 객체들을 이반적으로 Element라고 부른다.

5. Collection 타입에 따라 Element의 중복을 허용하기도 하고 허용하지 않기도 한다.

6. Collection 타입에 따라 입력된 순서를 관리할 수도 있다.

7. add, remove, size, isEmpty, contains, iterator 등의 메소드를 제공한다.

Set 인터페이스 ( LinkedList, ArrayList )

1. Element 의 중복을 허용하지 않는다.

2. 순서를 관리해 주지 않는다.

3. Set인터페이스의 자식 인터페이스인 SortedSet은 입력된 엘리먼트를 정렬해 준다.

4. SortedSet에는 fisrt, last, subSet 등의 메소드를 제공한다.

List 인터페이스 ( TreeSet, HashSet )

1. 입력된 순서에 따라 객체를 관리해 준다.

2. LIFO( last in first out ) 방식

3. 엘리먼트는 일렬로 배열되어 해당 인덱스로 구별할 수있다/

4. 인덱스로 구분하기 때문에 자료의 중복이 허용된다.

5. add, remove(int index), get(int index), set(int indes, Object element) , indexOf, listiterator 등의 메소드 제공


Map 인터페이스

1. 객체를 저장할 때, key, value에 mapping 하여 저장한다 ( hash table 과 비슷한 의미 )

2. 값에 해당되는 것이 저장되므로 고유한 키로 인해서 엘리먼트들이 구별된다.

3. 중복허용, 순서 무시

4. 자식 인터페이스인 SortedMap은 순서를 기록해 준다.

5. SortedMap에서는 firstkey, lastkey, subMap 등의 메소드를 제공한다.

* ArrayList 

배열과는 다르게 동적으로 크기를 조절할 수 있는 배열을 제공한다.

ex)       List testList = new ArrayList();       // 디폴트 사이즈는 10이다
            List testList = new ArrayList(5);     // 5로 사이즈 지정 

List list = new ArrayList();
list.add("good");
list.add( new Integer(100) );
list.add( new Float(40.4F);      // 이런 방식으로 리스트를 생성하고 데이터를  삽입한다.

System.out.println(list);  // good, 100, 40.4 가 출력된다.

* HashSet


각 엘리먼트에 해시코드를 부여해 주기 때문에 검색 속도가 더 빠르다.


Set testSet = new HashSet();      // 디폴트 사이즈는 16이다  
Set testSet = new HasgSet(50);   // 50으로 사이즈 지정

Set set = new HashSet();
set.add("good");
set.add( new Integer(100) );
set.add( new Float(5.6F) );  
set.add("good")  // HashSet에서는 중복을 허용하지 않는다.

System.out.println(set); // good, 100, 5.6 이 출력.

* Iterator 

컬렉션에 존재하는 모든 엘리먼트를 꺼내는 과정을 의미한다.


Iterator elements = list.iterator();  //list는 List의 객체

while( elements.hasNext() ) {    

// hasNext는 현제 포인터 위치의 다음에 엘리먼트가 있으면 true 없으면 false 를 리턴한다.

System.out.println( elements.next() )  //next는 다음 포인터의 엘리먼트를 리턴한다.
 }

example 전체 소스

1.   import java.util.*;
2.
3.   public class SetExample {
4.     public static void main(String[] args) {
5.       Set set = new HashSet();
6.       set.add("one");
7.       set.add("second");
8.       set.add("3rd");
9.       set.add(new Integer(4));
10.      set.add(new Float(5.0F));
11.      set.add("second"); // 중복 데이터
12.      set.add(new Integer(4)); // 중복되는 데이터
13.
14.      Iterator elements = set.iterator();
15.      while ( elements.hasNext() ) {
16.          System.out.println(elements.next());
17.      }
18.    }
19.  }

* HashMap

Map 인터페이스를 해시 테이블로 구현한 것이다. 엘리먼트는 value와 key값이 mapping되어 저장된다.

Map testMap = new HashMap();       // 디폴트 사이즈는 16
Map testMap = new HashMap(50);    // 사이즈 50으로 지정

Map testMap = new HashMap();

testMap.put( new Integer(1) , "good");
testMap,put( new Integer(2) , "boy");

Set keys = testMap.keySet();   // 키값을 불러오기 위한 컬렉션 생성

Iterator key = keys.iterator();

while(key.hasNext()) {

System.out.println(testMap.get(key.next() )   // 키 값으로 데이터를 불러운다.

}








'Programming > JAVA' 카테고리의 다른 글

JAVA Thread  (0) 2010.02.23
JAVA 예외처리  (0) 2010.02.23
JAVA String 과 StringBuffer  (0) 2010.02.23
JAVA 중첩클래스 ( Nested Class )  (0) 2010.02.22
JAVA 추상메소드 & 인터페이스  (0) 2010.02.22