반응형

list 4

[Java] 자바 ArrayList와 LinkedList의 차이 (어레이 리스트와 링크드 리스트의 차이)

ArrayList ArrayList의 데이터 추가를 하는 상황의 이미지이다. ArrayList에서 데이터를 추가 또는 삭제하기 위해서는 다른 데이터를 복사해서 이동해야 한다. ArrayList에 객체를 순차적으로 저장할 때는 저장된 객체를 이동시키지 않아도 되지만, 중간에 위치한 객체를 추가하거나 삭제할 때에는 데이터의 이동이 많이 일어나게 된다. 따라서, 추가 및 삭제에는 속도 저하가 일어나게 된다. 하지만, 인덱스의 주소 값을 얻기 위해서는 배열의 주소와 데이터 타입의 크기를 계산하여 접근하기 때문에 빠른 접근이 가능하다. 즉, ArrayList는 검색(읽기) 측면에서는 상대적으로 빠른 속도로 찾을 수 있다. ArrayList의 장점 데이터를 순차적으로 추가하거나 삭제하는 경우 빠른 처리가 가능하다...

[Java] 자바 LinkedList 클래스 개념 정리 및 활용

LinkedList LinkedList 컬렉션 클래스는 데이터를 효율적으로 추가, 삭제, 변경 등의 동작을 하기 위해 사용한다. LinkedList는 ArrayList와는 다르게 불연속적으로 존재하며, 데이터들은 서로 연결되어 있다. 그림과 같이 LinkedList의 각 요소(node)들은 자신과 연결된 이전 요소 또는 다음 요소의 주소 값과 데이터로 구성되어 있다. LinkedList에서 데이터 삭제는 삭제하고자 하는 노드의 이전 노드가 삭제하고자 하는 노드의 다음 노드를 참조하도록 변경하는 것으로 삭제한다. 즉, 연결된 링크를 끊어 다른 노드에 다시 연결하는 방식이다. LinkedList는 배열과 같이 데이터를 이동하기 위해 복사할 필요가 없어 처리 속도가 훨씬 빠르다. LinkedList에서의 데이..

[Java] 자바 ArrayList 클래스 개념 정리 및 활용

ArrayList ArrayList는 List 인터페이스를 구현한 클래스로 컬렉션 프레임워크에서 가장 많이 사용된다. 기능적으로는 Vector와 동일하지만, 기존의 Vector를 개선한 것으로 주로 ArrayList를 사용한다. ArrayList에 객체를 추가하면 객체가 인덱스로 관리된다는 점에서 배열과 유사하다. 그러나 배열은 생성될 때 크기가 고정되며, 크기를 변경할 수 없다. 하지만 ArrayList는 저장 용량을 초과하여 객체들이 추가되면, 자동으로 저장용량이 늘어나게 된다. 또한 List 자료구조의 특성을 이어받아 데이터가 연속적으로 존재하여 순서를 유지한다. ArrayList의 생성 List 객체이름 = new ArrayList(초기 저장 용량); ArrayList를 생성하기 위해서는 저장할 ..

[Java] 자바 List<E> 컬렉션 인터페이스 정리

List List 인터페이스는 배열과 같이 객체를 일렬로 늘어놓은 구조를 가지고 있다. 객체를 인덱스로 관리하여 객체를 저장하면 자동으로 인덱스가 부여되고, 인덱스로 객체를 검색, 추가, 삭제 등의 기능을 수행할 수 있다. List 인터페이스를 구현한 클래스는 ArrayList, Vector, LinkedList, Stack 등이 있다. List 인터페이스에서 사용 가능한 메서드는 컬렉션 인터페이스의 메서드와 함께 사용이 가능하다. add(int index, Object element) 주어진 인덱스에 객체를 추가하며 반환 값은 없다. addAll(int index, Collection c) 주어진 인덱스에 컬렉션을 추가하며 그 결과를 boolean 타입으로 반환한다. set(int index, Obje..

반응형