Collection FrameWork. list편

Jb·2024년 3월 11일

자바의 정석

목록 보기
1/2

Collection FrameWork:데이터를 저장하는 클래스들을 표준화한 설계

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

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

ArrayList:배열의 크기를 넉넉하게 잡아야 한다.

ArrayList와 vector같은 배열은 용량을 변경할 때 새로운 배열을 생성하고 기존 배열의 정보를 복사해 새로운 배열로 복사하기 때문에 비효율적이여서 ArrayList를 만들때 용량을 조금 넉넉하게 해야한다.(너무 많이는 x)

배열:기본적인자료구조이며 데이터를 읽어오는데 가장빠르다.

단점으로는

크기를 변경할 수 없다.

비순차적인 구조에서는 데이터 추가 ,삭제에 시간이 많이 걸린다.

이 단점을 없애려고하는게 LinkedList 이다

LinkedList는 불연속적인 데이터들을 서로 연결한 형태로 되어있다.

단점도 존재하는데

단방향성임으로 다음 요소로의 접근은 좋은데
이전 요소의 접근이 어렵다.

이 단점을 해결하기 위해 더블 링크스리스트가 생겼다.
Double LinkedList 는 링크드 리스트와 비슷하지만
각 노드에 이전 다음 이렇게 두개의 노드를 가지고있어 링크스 리스트의 단점을 상쇄시켜준다.

일반적으로 자바는 LinkedList 클래스는 Double LinkedList를 나타낸다.

0개의 댓글