컬렉션 프레임워크의 핵심 인터페이스
List |
순서가 있는 데이터 집합, 중복 허용 |
ArrayList, LInkedList, Stack, Vector |
Set |
순서를 유지하지 않는 데이터 집합, 중복 허용하지 않음 |
HashSet, TreeSet |
Map |
Key와 Value로 이루어진 데이터 집합, 순서 유지되지 않음, 키는 중복 허용하지 않음, 값은 중복 허용 |
HashMap TreeMap, Hashtable, Properties 등 |
* List를 Set에 넣으면 중복이 제거 된다.
List 인터페이스 : 순서 O 중복 O
Set 인터페이스 : 순서 X 중복 X
Map 인터페이스 : 순서 X, 중복(키X,값O)
ArrayList
- ArrayList에 저장된 객체 삭제 과정
삭제할 데이터를 한칸씩 위로 복사에서 덮어쓰기 떄문에 첫 번째 객체부터 삭제하는 경우 배열 복사 발생하여 다 안지워진다.
그러므로 마지막 객체부터 삭제한다.
- 크기 변경 불가, 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸린다
LInkedList
- 배열의 단점을 보완하기 위해 고안 되었다. 배열은 모든 데이터가 연속적으로 존재하지만 링크드 리스트는 불연속적으로 존재하는
데이터를 서로 연결 한 형태로 구성 되어 있다.
- 다음에 나올 자료의 위치정보만 갖고, 내부적인 인덱스는 없다.
- 데이터의 추가/삭제는 위치정보의 수정만으로 가능하기 때문에 정보의 추가/삭제 처리에 유용하다
- 데이터가 많은 경우의 검색 시 처음부터 순차적으로 찾아 나가기 때문에 성능이 저하 된다.
스택과 큐