데이터 집합/그룹을 의미하며 객체들을 한곳에 모아 관리하고, 편하게 사용하기 위해 제공되는 환경
- 다수의 data를 다루는데 표준화된 클래스들을 제공하기 때문에 자료구조를 직접 구현하지 않고 편하게 사용 가능
- 객체를 보관하기 위한 공간을 미리 정하지 않아도 되므로, 상황에 따라 객체의 수를 동적으로 정할 수 있음
ArrayList LinkedList
순서가 있는 데이터 집합, 데이터 중복 허용ArrayList
배열로 구현된 List
단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어서 조회 기능 성능에 뛰어나다.
LinkedList
노드의 주소를 기억하고 있는 List
양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 된다.
HashMap HashTable TreeMap
key - value 의 쌍으로 이루어진 데이터 집합, 데이터 순서 보장 xHashMap
가장 일반적으로 사용
key 값에 해시함수를 적용하여 나온 인덱스에 value를 저장
HashSet TreeSet
value에 중복된 값을 저장하지 않는다. Map의 key-value 구조에서 key 대신 value가 들어감
순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용 xHashSet
value가 포함되어 있는지 아닌지만 관심이 있다.
가장 빠른 임의 접근 속도이고, 순서를 예측할 수 없다.
Stack : 직접 new 연산자로 객체를 생성하여 사용 가능
Queue : new 연산자로 객체를 생성함으로써 사용 가능