Java/자료구조

[자료구조 리스트] 배열리스트(ArrayList)

Sigfriede 2023. 6. 8. 13:00

  List 인터페이스 의 크기 조정 가능한 배열 구현입니다 . 모든 선택적 목록 작업을 구현하고 null 을 포함한 모든 요소를 ​​허용합니다 . List 인터페이스 를 구현하는 것 외에도 이 클래스는 목록을 저장하기 위해 내부적으로 사용되는 배열의 크기를 조작하는 메서드를 제공합니다. (이 클래스는 동기화되지 않는다는 점을 제외하면 Vector 와 거의 동일합니다.)

  각 배열리스트 인스턴스에는 용량이 있습니다. 용량은 목록에 요소를 저장하는 데 사용되는 배열의 크기입니다. 항상 최소한 목록 크기만큼 큽니다. 요소가 배열리스트에 추가되면 용량이 자동으로 증가합니다.

 

  배열의 선언과 생성

  • import java.util.ArrayList;
    • 배열리스트를 사용하기 위해 import문을 추가해야 합니다.
  • ArrayList<제네릭 타입> 변수이름 = new ArrayList<제네릭 타입>();
    • 생성자의 제네릭 타입은 생략할 수 있습니다.
    • 인자에 초기 용량을 지정할 수 있습니다.
    • 인자를 생략할 시 초기 용량이 10인 빈 목록을 생성합니다.

 

  주요 메소드

  • add()
    • 지정된 요소를 이 리스트의 끝에 추가
    • 인자를 두 개 넣을 시, 지정된 위치에 지정된 요소를 삽입
  • clear()
    • 리스트에서 모든 요소를 제거
  • get()
    • 리스트의 지정된 위치에 있는 요소를 반환
  • indexOf()
    • 리스트의 지정된 위치에 있는 요소가 처음 나타나는 인덱스를 반환
    • 리스트에 요소가 포함되어 있지 않으면 -1 반환
  • isEmpty()
    • 리스트에 요소가 없으면 true 반환
  • remove()
    • 리스트의 지정된 위치에 있는 요소를 제거
  • set()
    • 리스트의 지정된 위치에 있는 요소를 지정된 요소로 변경
  • size()
    • 리스트의 요소 수를 반환

 

  배열 리스트의 장단점

  • 장점
    • 배열에 비해 원소의 삽입과 삭제가 편함
    • 크기 조절 유연
    • 다양한 기능의 메소드를 지원
  • 단점
    • 배열에 비해 느린 속도
    • 배열보다 더 많은 메모리 소비(메모리 오버헤드)

 

  배열은 크기가 고정되고 빠른 접근이 요구되는 경우에 적합하며, 배열 리스트는 리스트의 크기를 유연하게 대처하고 싶을 때 적합한 것 같습니다. 상황에 따라 필요한 자료구조를 이용하면 좋을 듯합니다.

 

  참고 자료: 오라클 공식문서 ArrayList 항목

  https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html