즉 쉽게 말하면 각기 다른 데이터들의 종류들을 각자 다른방법으로 이용하다가 그 다른방법들이 통일화됐다고 생각하면 된다.

List: 순서가 있는 데이터의 집합,데이터 중복허용
Set: 순서를 유지하지않는 데이터의 집합 , 데이터의 중복을 허용하지않는다.
Map: key, value의 쌍으로 이루어진 데이터의 집합
순서는 유지되지 않으며 key는 중복 허용X,값은 중복을 허용한다.

ArrayList와 vector같은 배열은 용량을 변경할 때 새로운 배열을 생성하고 기존 배열의 정보를 복사해 새로운 배열로 복사하기 때문에 비효율적이여서 ArrayList를 만들때 용량을 조금 넉넉하게 해야한다.(너무 많이는 x)
단점으로는
크기를 변경할 수 없다.
비순차적인 구조에서는 데이터 추가 ,삭제에 시간이 많이 걸린다.
이 단점을 없애려고하는게 LinkedList 이다
LinkedList는 불연속적인 데이터들을 서로 연결한 형태로 되어있다.
단점도 존재하는데
단방향성임으로 다음 요소로의 접근은 좋은데
이전 요소의 접근이 어렵다.
이 단점을 해결하기 위해 더블 링크스리스트가 생겼다.
Double LinkedList 는 링크드 리스트와 비슷하지만
각 노드에 이전 다음 이렇게 두개의 노드를 가지고있어 링크스 리스트의 단점을 상쇄시켜준다.
일반적으로 자바는 LinkedList 클래스는 Double LinkedList를 나타낸다.