지식노트
[JAVA] Collection Frameworks
디두딘
2022. 4. 28. 16:56
Collections FrameWork
- 컬렉션(Collection): 자바에서 제공하는 자료구조를 담당하는 프레임워크
- 추가, 삭제, 정렬 등의 기능처리가 간단하게 해결되어 자료구조적 알고리즘을 구현할 필요가 없다.
- Java.util 패키지에 포함
- 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스를 이용할 수 있다.
- 배열의 단점
- 한번 크기를 지정하면, 변경할 수 없다. 필요에 따라 늘리거나 줄일 수 없음. 공간의 크기가 부족하면 에러가 발생하므로, 넉넉한 크기로 할당하게 됨. 메모리를 낭비하는 결과를 초래함.
- 배열에 기록된 데이터에 대한 중간위치의 추가, 삭제가 불편함.
- 맨 앞이나 중간 위치에 추가할 경우, 그 위치의 데이터부터 마지막에 기록된 데이터까지를 하나씩 뒤로 밀어내고, 추가해야 함. 삭제의 경우도 마찬가지임.
- 배열의 추가, 삭제에 대한 알고리즘이 복잡하다.
- 한 타입의 데이터만 저장한다.
- 컬렉션은 저장하는 크기의 제약이 없다. 자료를 구조적으로 처리하는 자료구조가 내장이 되어 제공이 됨
- 추가, 삭제, 정렬 등의 기능처리가 간단하게 해결됨.
- 자료구조적인 알고리즘 구현이 필요없다.
- 여러 타입을 저장할 수 있다.
- 객체만 저장함 : 필요할 경우 데이터의 저장을 위해 Wrapper 클래스를 사용함
- 컬렉션은 두 부류로 나눠짐
- Collection 인터페이스의 후손들
- List 인터페이스 계열
- Set 인터페이스 계열
- Map 인터페이스의 후손들
- Collection 인터페이스의 후손들
인터페이스
- java.util.List : 중복을 허용하고, 순서있음. 인덱스 이용 가능 java.util.ArrayList
- java.util.Set : 집합. 중복없고, 순서없음. java.util.HashSet
- java.util.Map : 키와 값의 쌍을 요소로 저장함. 키를 통해 값을 꺼낼 수 있음. java.util.HashMap
상속에 대한 계층구조
- Collection - Set - AbstractSet - HashSet : 중복제거
- Collection - Set - AbstractSet - HashSet - LinkedHashSet : 저장되는 순서유지
- Collection - Set - AbstractSet - TreeSet : 자동 오름차순정렬됨 ###list
- Collection - List - AbstractList - ArrayList : 배열처럼 사용(Thread Safe 기능없음)
- Collection - List - AbstractList - AbstractSequentialList - LinkedList : (Thread Safe 기능없음)
- Collection - List - AbstractList - Vector: 하위호환용 더이상 사용하지 말것.(Thread Safe 기능포함) ###map
- Map - AbstractMap - HashMap : (Thread Safe 기능없음)
- Map - HashTable : 구버젼(Thread Safe 기능포함)