Collection 2

[Java] LinkedList 파헤쳐 보기

Java의 ArrayList의 실제 구현코드를 살펴보았던 이전 게시글에 이어서 LinkedList도 소스코드를 파헤쳐보자. (참고: 2021.10.06 - [Language/Java] - [Java] ArrayList 파헤쳐 보기) Doubly-linked list implementation of the List and Deque interfaces. LinkedList는 이전/이후의 리스트와 연결되어 있는 구조이다. 이는 다음과 같은 특징을 가진다. o element 갯수에 대해 정해진 limit 없음 o Reference Type만 가질 수 있음 o Thread Safe 하지 않음 ArrayList가 내부적으로 Object[]으로 이루어졌던거에 비해 LinkedList는 Node로 이루어져있다. 코드..

Language/Java 2021.10.06

[Java] ArrayList 파헤쳐 보기

Java 개발에서 Collection의 데이터 타입을 사용하면서 내부 코드를 볼 생각을 하지는 않았었는데, 직접 ArrayList 클래스를 살펴보며 어떻게 동작하는지 공부해보니 흥미로운 부분이 많았다. 여기서는 ArrayList의 생성자, 삽입/삭제/초기화/정렬 메소드 중심으로 정리해보려 한다. Resizable-array implementation of the List ArrayList란 Size가 변하는 배열을 말한다. 그리고 다음과 같은 몇가지 특징을 가진다. o 중간에 데이터를 삽입, 삭제하는 것이 가능 o Reference Data Type만 넣을 수 있음 o Thread Safe 하지 않음 그럼 코드를 한 번 살펴보자. o 인스턴스 변수 : ArrayList는 값을 담고있는 Object배열과 ..

Language/Java 2021.10.06