https://youtu.be/u0pJGFyvrqc?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp
📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다.
1. Collections란? - 컬렉션을 위한 메서드(static)를 제공한다.
- 컬렉션 채우기, 복사, 정렬, 검색 - fill( ), copy( ), sort( ), binarySearch( ) 등
- 컬렉션의 동기화 - synchronizedXXX( )
List syncList = Collections.synchronizedList(new ArrayList(...));
- 변경불가 컬렉션 만들기(readOnly) - unmodifiableXXX( )
- 싱글톤 컬렉션 만들기 - singletonXXX( )
- 싱글톤이란? 객체 1개만 저장하게 하는 것을 의미한다
- 한 종류의 객체만 저장하는 컬렉션 만들기 -checkedXXX( )
- 원래는 여러 종류의 객체를 저장할 수 있는데 이 메소드를 사용하면 한 가지 타입만 저장가능하게 된다.
2. 자바 Collection
Collection이란 데이터의 집합, 그룹을 의미한다.
3. Collections 인터페이스의 특징
인터페이스 | 구현클래스 | 특징 |
Set | HashSet TreeSet |
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다. |
List | LinkedList Vector ArrayList |
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다. |
Queue | LinkedList PriorityQueue |
List와 유사 |
Map | Hashtable HashMap TreeMap |
키(Key), 값(Value)의 쌍으로 이루어진 데이터으 집합으로, 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다. |
4. 정리
[Set 인터페이스] - 순서 유지 X , 중복 허용 X
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
- HashSet
- 가장빠른 임의 접근 속도
- 순서를 예측할 수 없음 - TreeSet
- 정렬방법을 지정할 수 있음
[List 인터페이스] -
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
- LinkedList
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용
- 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임 - Vector
- 과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않음 - ArrayList
- 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남
[Map 인터페이스]
키(Key), 값(Value)의 쌍으로 이루어진 데이터 집합으로, 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.
- Hashtable
- HashMap보다는 느리지만 동기화 지원
- null불가 - HashMap
- 중복과 순서가 허용되지 않으며 null값이 올 수 있다. - TreeMap
- 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름
'Java > 객체지향' 카테고리의 다른 글
[객체지향][제네릭스] - 25. 제네릭스와 타입변수 (0) | 2022.02.14 |
---|---|
[객체지향][제네릭스] - 24. 제니릭스란? (0) | 2022.02.14 |
[객체지향][자바의 정석] - 22. HashMap (0) | 2022.02.13 |
[객체지향][자바의 정석] - 21. TreeSet (0) | 2022.02.03 |
[객체지향][자바의 정석] - 20. HashSet (0) | 2022.01.31 |