본문 바로가기
JAVA/문법

자바 ArrayList 주요 메소드 정리, 사용방법

by 스코리아 2023. 8. 23.

안녕하세요, 스코리아입니다.

이전 시간에는 1차원 배열과 2차원 배열 선언, 초기화 방법에 대해서 알아보았습니다.

[이전 내용] 1차원 배열 선언, 초기화 방법: https://skorea6.tistory.com/14

[이전 내용] 2차원 배열 선언, 초기화 방법: https://skorea6.tistory.com/16

 

오늘은 자바 ArrayList 선언 방법과 주요 메소드를 사용하는 방법에 대해서 알아보겠습니다.

 

 

ArrayList vs 기존 배열

  • 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했습니다.
  • 즉, 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 따른 번거로운 구현이 필요했습니다. 
  • ArrayList배열의 크기(길이)를 신경 필요가 없습니다.
  • ArrayList는 배열을 더 효율적으로 관리하기 위해 자바에서 제공해 주는 클래스입니다.
  • ArrayList는 Collection 프레임워크의 일부로서, java.util 패키지에서 제공됩니다

Java 자바의 ArrayList

 

ArrayList 특징

  • ArrayList는 객체가 추가돼서 용량이 초과되면 자동으로 부족한 크기의 용량만큼 용량이 늘어납니다.
  • 이미 많은 메소드들이 최적의 알고리즘으로 구현되어 있어서, 각 메소드의 사용 방법만 익히면 유용하게 사용 가능합니다.

 

ArrayList 선언하기

// 타입 설정없이
ArrayList list1 = new ArrayList();

// Integer 타입
ArrayList<Integer> list2 = new ArrayList<Integer>();

// 객체 타입
ArrayList<Book> list3 = new ArrayList<Book>();

// Integer 타입 + 초기값
ArrayList<Integer> list4 = new ArrayList<Integer>(Arrays.asList(1, 2, 3));
  1. import java.util.* 을 선언해 주셔야, ArrayList 사용이 가능합니다.
  2. 타입 설정 없이 선언하는 방법도 있습니다.
  3. 특정 타입을 명시해 주려면 <Integer> , <String>와 같은 식으로 적어주시면 됩니다.
  4. 타입으로 객체도 들어갈 수 있습니다.
  5. 앞쪽에 타입을 명시했다면, 뒤쪽 <>에는 타입을 생략할 수 있습니다.
  6. 예제와 같이, 초기값을 설정할 수도 있습니다.

 

ArrayList의 주요 메소드

메소드 설명
boolean add(E e) 요소 하나를 배열에 추가합니다. (E는 요소의 자료형을 의미)
boolean add(int index, E e) 요소 하나를 배열의 특정 index 위치에 추가합니다.
int size() 배열에 추가된 요소의 전체 개수를 반환
E get(int index) 배열의 index 위치에 있는 요소 값을 반환
void set(int index, E e) 배열의 index 위치에 있는 요소 값을 변경
E remove(int index) 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환
E remove(E e) 배열의 값을 찾아 그 요소를 제거하고 그 값을 반환
void clear() 배열 안의 모든 값을 삭제
boolean isEmpty() 배열이 비어있는지 확인 (비어있으면 true, 아니면 false)
boolean contains(E e) 배열에 값이 있는지 확인 (값이 있으면 true, 없으면 false)
int indexOf(E e) 배열의 값을 통해 index 위치를 반환 (값이 없으면 -1)

 

ArrayList 사용 방법 (예제)

  • ArrayList의 주요 메소드를 활용해서 예제를 만들어보았습니다.
import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        // ------ add --------
        list.add("Java"); // 추가
        list.add("ArrayList");
        list.add(1, "Test");
        System.out.println("[값 추가 후] " + list);

        // ------ set --------
        list.set(1, "Korea"); // 변경
        System.out.println("[값 변경 후] " + list);

        // ------ size --------
        System.out.println("[배열의 크기] " + list.size());

        // ------ for문 --------
        System.out.print("[배열 출력하기] ");
        for(String s : list){
            System.out.print(s + " # ");
        }
        System.out.println();

        // ------ contains, indexOf --------
        System.out.println("[값 검색(contains)] " + list.contains("Korea")); // true
        System.out.println("[값 검색(indexOf)] " + list.indexOf("Monday")); // 값이 없으면 -1

        // ------ remove, clear --------
        list.remove(1);
        System.out.println("[값 삭제 후 - 1] " + list);
        list.remove("Java");
        System.out.println("[값 삭제 후 - 2] " + list);
        list.clear();
        System.out.println("[값 전체 삭제 후] " + list);

        // ------ isEmpty --------
        System.out.println("[배열 비었는지] " + list.isEmpty());
    }
}

ArrayList 예제 - 실행결과

 


지금까지 자바(Java)의 ArrayList 의미/특징과, 주요 메소드를 사용하는 방법을 예제와 함께 알아보았습니다.

읽어주셔서, 감사합니다.