프로그래밍/Java

Collection Framework. ArrayList , HashSet, HashMap

seungdols 2014. 6. 30. 15:21

컬렉션 프레임 워크란?


데이터 집합을 저장하는 표준화된 클래스를 말합니다. ^^



컬렉션 프레임워크에 핵심 인터페이스는 세 가지로 분류 됩니다. 


List - 순서가 있는 데이터/중복을 허용한다.


Set - 순서를 유지하지 않는 집합/ 중복을 허용하지 않는다.


Map -  키와 값으로 저장/값만 중복 가능, 순서 유지하지 않는다.




Vector , ArrayList를 가장 많이 사용하는데 차이점이 존재 합니다.


모두 비슷하지만, 차이점으로는 Vector는 멀티쓰레드에 대해 동기화 처리가 되고, ArrayList는 동기화 처리를 하지 않는다.


-이 부분은 지금 중요한 논의가 아니다. 퍼포먼스와 관련있다.


공통점은 배열기반이란 점! 그리고 List 인터페이스를 상속받아 구현한 점!



ArrayList


1
2
3
4
5
6
7
8
9
10
11
12
public class ArrList {
    public static void main(String[] args) {
        ArrayList arr_list = new ArrayList(10);
        
        arr_list.add(1);
        System.out.println(arr_list);
        arr_list.add(3);
        arr_list.add(34);
        System.out.println(arr_list);
        //저장 순서를 유지한다.
    }
}
cs


HashSet


- 내부적으로는 HashMap을 이용하여 구현함.


특징 : 중복 N0N-허용, 순서 유지 하지 않는 클래스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class HashSetTest {
    public static void main(String[] args) {
        //중복을 허용하지 않는 HashSet
        Set set = new HashSet();
        
        for (int i = 0; set.size() < 6; i++){
            int num = (int)(Math.random()*45+ 1;
            set.add(new Integer(num));
        }
        List list = new LinkedList(set);
        Collections.sort(list);
        System.out.println(list);
        
    }
}
cs



위의 예제는 로또번호 예제 - 코드를 이해 못해도 무관.


HashMap


- Key&Value 의 형식으로 데이터를 저장하는 클래스이다.

값의 중복은 허용하나, Key의 경우는 중복을 허용하지 않는다. 


왜? Key 값은 중복이 있다면, 어떤 값이 맞는 것인지 알 수가 없다!! >_<


1
2
3
4
5
6
7
8
9
10
11
public class HashMapTEST {
    public static void main(String[] args) {
 
        HashMap map = new  HashMap();
 
        map.put("seungdols"3452);
        map.put("choi"2341);
        System.out.println(map);
        
    }
}
cs


반응형

'프로그래밍 > Java' 카테고리의 다른 글

절차 지향? 객체 지향?  (0) 2014.09.03
Java 문자열에 관한 타입  (0) 2014.09.03
JAVA란?  (0) 2014.03.24
RGB 색상표  (0) 2011.11.23
API 주소  (0) 2011.11.08