ArrayList와 LinkedList는 데이터를 담을 수 있는 배열이지만 각각 저마다의 장점과 단점이 있습니다.

오늘은 각각의 장단점, 처리과정에대해 알아보겠습니다.

 

1. ArrayList

List에서 자주 쓰이는 클래스입니다. 데이터의 저장순서가 있으며, 중복을 허용하는 특징이 있습니다.

데이터의 담을 양을 정해놓는다고 가정을 했을 때 처리속도가 빠르며, 중간중간 수정을 거치는 과정이 있을때에는 처리속도가 비교적 느리다는 장점이 있습니다.

만약 데이터의 개수가 100개인 ArrayList가 있다고 가정을 하겠습니다. 49번 인덱스의 데이터를 삭제한다고 하면, 50번째 인덱스는 49번째로 이동을하면서 결국 100번째 데이터는 99번째로 이동하는 수고로움이 있는데, 이는 ArrayList의 단점입니다.

 

2. LinkedList

크기를 변경할수 없다는 불편함과 중간중간 들어가는 수정작업의 처리과정을 해결한게 LinkedList입니다.

LinkedList의 각 요소들은 요소 자기 자신과 연결된 다음의 요소와 데이터로 구성되어있습니다. 중간에 데이터를 추가하거나 삭제할때 그 데이터에 참조만 하면 되는일이기 때문에 불필요한 과정을 거치지 않습니다.

하지만 다음의 요소에만 참조가 가능하다는 단점이있어 이전의 요소에 대한 접근이 안된다는 단점이 있지만, doubly linked list를 통해 불편함을 해소했습니다.

더불어 맨끝의 다음요소는 맨처음의 요소로, 맨처음의 이전은 맨끝의 요소로 연결해주는 doubly circular linked list가 있습니다.

 

3. 결론

 - 중간에 수정작업(추가 및 삭제)가 발생할 경우에는 LinkedList가 유리합니다.

 - 마지막데이터부터 순서대로 수정작업이 발생하거나 그럴일이 없다면 ArrayList가 더 용이합니다.

'코딩 > Java' 카테고리의 다른 글

Java 오늘 날짜 기준으로 일주일 출력하기  (0) 2020.07.12
Java 소수점 끊기, 반올림방법  (0) 2020.07.03
Java 초기화블럭  (0) 2020.06.23
Java 매개변수와 인자  (0) 2020.06.23
Java 오버로딩과 오버라이딩  (0) 2020.06.21
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기