List

Lumi·2021년 6월 28일
0

자바의 정석

목록 보기
7/35
post-thumbnail

ArrayList(584p)

가장 많이 사용되는 컬렉션 클래스

for문을 사용하여 요소를 삭제하려면 변수를 감소시키면서 거꾸로 적용을 해야한다.
->증가시키면서 하게된다면 한 요소가 삭제되게 된다면 빈 공간을 채우기위해 다른 요소들이 이동을 해야하기 떄문에 다른 값이 나오게 된다.

ArrayList같은 경우에는 배열의 크기는 자동적으로 늘어난다.
-> 처리시간이 많이 소요가 된다.

LinkedList(596p)

불연속적으로 존재하는 데이터를 서로 연결한 형태로 구성

데이터의 연결이 주소값과 데이터로 구성되어 있다.

만약 데이터를 삭제 하고자 한다면 요소의 이전요소가 삭제하고자 하는 요소의 다음요소를 참조하도록 변경만 하면 된다.
추가 또한 메커니즘은 같다.

하지만 이동방향이 단방향이기 떄문에 다음 요소에 대한 접근은 쉽지만 이전요소에 대한 접근은 어렵다.
이를 보완하기 위해 더블 링크드 리스트 or 더블 써큘러 링크드 리스트 등이 있다.

실제로 LinkedList는 더블 링크드 리스트로 구현되어 있다.

LinkedList또한 List인터페이스로 구현했기 떄문에 ArrayList와 메서드의 종류와 기능은 거의 동일하다.

다루고자 하는 데이터의 개수가 변하지 않는 경우라면, ArrayList가 최상의 선택이 되겠지만, 데이터의 개수의 변경이 잦다면 LinkedList가 좋다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글