13_02_List_arrayList_linkedList
안녕하세요 MrChooCAI 입니다!@#!@
이번 포스트에서는 Collection framework에서 List에 관련해서 알아보도록 하겠습니다.~ 잘 따라와 주세요 실습코드도
제공됩니다. github에서 사용하시면 되겠습니다.
Collection framework: https://choocai.blogspot.com/2021/12/1300collection.html
Github: https://github.com/Chooyoungjun/javastudy/tree/main/14_02_list
[목차]
List
1.
ArrayList
2.
LinkedList
위와 같은 순서로 설명하겠습니다. 혹시 필요한 부분이 있으시면 먼저
찾아 가시면 되겠습니다.
List(리스트)
데이터를 일렬로 늘어놓은 구조 입니다. 앞에서 배운 set과는 다르게 순서가 있으며 중복을 허용 합니다.
[list 특징]
-
순서가 있음
-
중복 허용함
-
인터터페이스로 구현됨
[List 인터페이스의 주요 메서드]
위의 특징이 있기 때문에 List는 클래스를 상속 받아서 구현을 해야지
사용 할 수 있습니다. 이러한 List를 상속 받아서 만든
클래스 중 2가지(ArrayList, LinkedList)에
대해서 알아보겠습니다.
1.
ArrayList
[ArrayList 특징]
n ArrayList는 자바의 List 인터페이스를 상속받은 여러 클래스
중 하나입니다.
n 일반 배열과
동일하게 index는 0부터 시작합니다.
n List의 사이즈가 가변적으로 변합니다.
n 메모리에
저장 될 때 연속적으로 저장이 됩니다.
[실습]
실습을 통해서 arrayList에
대해서 알아보도록 하겠습니다.
위의 실습과 같이 ArrayList에
대해서 알아보았습니다.
2.
LinkedList
[LinkedList 특징]
n LinkedList는 자바의 List 인터페이스를 상속받은 여러 클래스
중 하나입니다
n 엘리먼트와
엘리먼트 간의 연결(link)을 이용해서 리스트를 구현하였습니다.
n index는 0부터 시작합니다
n List의 사이즈가 가변적으로 변합니다.
위의 같은 특징을 숙지 하고 ArrayList와
LinkedList의 성능을 비교하는 실습을 진행해 보도록 하겠습니다.
[실습]
2종류의 List의 작업속도 차이를 비교 하는 실습을 진행해 보겠습니다. 여기에서
time 메서드를 활용을 합니다. 혹시 잘 모르시면 이전
포스트를 참조해 주십시오!
( https://choocai.blogspot.com/2021/12/12-currentmillsdatesimpledateformatjava.html
)
Array는 메모리를
할당 받은 곳에 계속 값을 쓰고 지우기를 반복하지만 LinkedList는 아무 위치에 값을 적고 주소만
링크하는 방식입니다. 그래서 위의 비교와 같이 LinkedList가
작업 속도가 빠른 것을 확인할 수 있습니다.
이렇게 해서 Collection framework에서 List에대해서 알아보았습니다 잘 숙지하시고 잘 활용하시기를 부탁드리겠습니다.
Comments
Post a Comment