java

java (List-ArrayList, Vector, LinkedList)

소리소리솔소리 2022. 9. 29. 10:57

*List 컬렉션 클래스

-리스트와 배열의 가장 큰 차이점은 크기가 정해져 있지 않고 동적으로 변한다는 점

-데이터를 크기를 알 수 없을 때 유용하게 사용

-요소의 저장 순서가 유지

-같은 요소의 중복 저장을 허용

-데이터 크기가 고정X(동적 할당)

-데이터를 다루기 위한 여러 방법이 제공

 

 

List 컬렉션 클래스의 종류

-ArrayList

-LinkedList

-Vector

-Stack

 

 

 

add : 해당 컬렉션에 요소를 추가 하거나 해당 인덱스 위치에 값을 삽입

pitches.add(0, "130");

get : 특정 위치의 값을 가져 올 때

System.out.println(pitches.get(1));

size : ArrayList의 갯수를 리턴

System.out.println(pitches.size());

contains : 리스트 안에 해당 항목이 있는지를 판별하여 그 결과를 boolean으로 리턴

System.out.println(pitches.contains("142"));

 

remove(객체) : 리스트에서 객체에 해당되는 항목을 삭제하고 삭제한 결과(true, false)를 리턴

System.out.println(pitches.remove("129"));
true

remove(인덱스) : 해당 인덱스의 항목을 삭제하고 삭제된 항목을 리턴

 

 

예제

 

 

 

LinkedList<E> 클래스 (사용 방법은 ArrayList와 동일)

-LinkedList 클래스는 ArrayList 클래스가 배열을 이용하여 요소를 저장함으로써 발생하는 단점을 극복하기 위해 고안

-JDK 1.2부터 제공된 LinkedList 클래스는 내부적으로 연결 리스트(linked list)를 이용하여 요소를 저장

-배열은 저장된 요소가 순차적으로 저장된다. 하지만 연결 리스트는 저장된 요소가 비순차적으로 분포되며, 이러한 요소들 사이를 링크(link)로 연결하여 구성한다.

 

Vector

-Vector는 ArrayList와 동일한 내부 구조를(사용 방법 동일)

 

List<E> list = new Vector<E>();

 

-ArrayList와 다른점은 동기화된(synchronized) 메소드로 구성되어 있어 멀티 쓰레드 환경에서 안전하지만 ArrayList에 비해 성능은 떨어짐.