linkedlist 2

Java - 단순 연결 리스트 구현하기

모든 코드는 github LinkedList LinkedList는 요소와 요소 간 연결link을 이용해서 List를 구현한다. 중요한 것은 연결은 무엇인가를 파악하는 것이다. 반대로 무엇이 연결이 아닌가, 를 생각해보는 것도 의미가 있을 것이다. ArrayList는 배열을 이용하므로 요소와 요소가 딱 붙어있다. 비유하자면 일렬로 줄 서 있다고 할 수 있다. LinkedList는 그렇지 않다. LinkedList의 요소들은 각각 어딘가에 흩어져 있고, 각 요소는 다음 요소가 어디 있는지에 대한 정보만 가지고 있다. ArrayList는 원하는 데이터가 몇 번 인덱스에 있는 줄만 알면 바로 접근할 수 있다. 반면 LinkedList는 첫 번째 요소에게 다음 요소의 위치를 묻고, 두 번째 요소에게 세 번째 요소..

자료구조 2020.10.17

List

ArrayList ArrayList는 컬렉션 프레임워크에서 가장 많이 사용하는 클래스다. Object를 이용해 순차적으로 데이터를 저장한다. 저장 공간이 없으면 동적으로 크기가 늘어난다. 새로운 배열을 만들어서 기존의 배열을 복사해 다시 저장한다. public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable { ... transient Object[] elementData; //Object배열 ... } ArrayList의 소스 일부다. elementData라는 이름의 Object[]를 멤버 변수로 선언해놨다. 따라서 ArrayList는 모든 타입의 객체를 담을 수 있다. A..

Java 2020.09.09