Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

예제 코드로 배우는 Java ArrayList 메소드 완벽 가이드

이 글에서는 Java에서 가장 많이 사용되는 ArrayList 메소드들을 각각의 예제 코드와 함께 자세히 살펴봅니다.

ArrayList 클래스는 크기가 자동으로 조절되는 가변 배열(resizable array)입니다. 리스트의 크기를 미리 알 수 없는 경우에 주로 ArrayList를 사용합니다.

ArrayList 클래스는 java.util 패키지에 포함되어 있으므로, 사용하려면 해당 패키지를 임포트해야 합니다.

ArrayList 생성 방법

ArrayList를 생성하고 항목을 추가하려면 String이나 Integer처럼 저장할 타입을 지정하여 ArrayList 객체를 인스턴스화하면 됩니다.

add() 메소드는 항목을 ArrayList의 다음 빈 위치에 추가합니다. 특정 인덱스에 항목을 삽입하는 방법은 아래 예제를 참고하세요.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    System.out.println(fruitBasket);
  }
}

실행 결과:

[Apple, Banana, Grapes, Orange]

특정 위치에 항목 추가하기

원하는 위치에 항목을 추가하려면 add() 메소드에 삽입할 인덱스를 함께 전달하면 됩니다. 기존 항목들은 자동으로 뒤로 밀려납니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    fruitBasket.add(2, "Melon");
    System.out.println(fruitBasket);
  }
}

실행 결과:

[Apple, Banana, Melon, Grapes, Orange]

ArrayList의 항목 조회하기

get() 메소드를 사용하면 특정 항목을 가져올 수 있습니다. 이때 조회할 항목의 인덱스 번호를 전달해야 합니다. 인덱스는 0부터 시작한다는 점에 유의하세요.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    System.out.println(fruitBasket.get(1));
  }
}

실행 결과:

Banana

ArrayList에서 항목 삭제하기

항목을 삭제할 때는 remove() 메소드를 사용하며, 삭제할 항목의 인덱스 번호를 전달합니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    fruitBasket.remove(0);
    System.out.println(fruitBasket);
  }
}

실행 결과:

[Banana, Grapes, Orange]

ArrayList의 모든 항목 삭제하기

clear() 메소드는 ArrayList에 있는 모든 항목을 한 번에 제거합니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    fruitBasket.clear();
    System.out.println(fruitBasket);
  }
}

실행 결과:

[]

ArrayList 크기 구하기

size() 메소드를 사용하면 ArrayList에 저장된 항목의 개수를 확인할 수 있습니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    System.out.println(fruitBasket.size());
  }
}

실행 결과:

4

ArrayList 순회하기

일반적인 for 반복문과 인덱스를 사용하여 ArrayList의 모든 항목을 순회할 수 있습니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    for (int i = 0; i < fruitBasket.size(); i++) {
      System.out.println(fruitBasket.get(i));
    }
  }
}

실행 결과:

Apple
Banana
Grapes
Orange

for-each 문으로 순회하기

인덱스가 필요 없다면 for-each 문을 사용하는 것이 더 간결하고 가독성이 좋습니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    for (String i : fruitBasket) {
      System.out.println(i);
    }
  }
}

실행 결과:

Apple
Banana
Grapes
Orange

숫자를 다루는 ArrayList 예제

ArrayList는 문자열뿐만 아니라 Integer 같은 숫자 타입도 저장할 수 있습니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<>();
    numbers.add(10);
    numbers.add(20);
    numbers.add(30);
    numbers.add(40);
    for (int i : numbers) {
      System.out.println(i);
    }
  }
}

실행 결과:

10
20
30
40

ArrayList의 항목 교체하기

set() 메소드는 지정한 인덱스의 기존 항목을 새로운 항목으로 대체합니다. 교체하고 싶은 항목의 인덱스를 반드시 지정해야 합니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");

    fruitBasket.set(3, "Peach");
    for (String i : fruitBasket) {
      System.out.println(i);
    }
  }
}

실행 결과:

#교체 전
[Apple, Banana, Grapes, Orange]

#교체 후
[Apple, Banana, Grapes, Peach]

ArrayList 항목 무작위로 섞기

shuffle() 메소드는 Collections 클래스에 속해 있으며, ArrayList의 항목들을 무작위 순서로 섞을 때 사용합니다.

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    System.out.println(fruitBasket);

    Collections.shuffle(fruitBasket);
    System.out.println(fruitBasket);
  }
}

실행 결과:

#셔플 전
[Apple, Banana, Grapes, Orange]

#셔플 후
[Grapes, Orange, Banana, Apple]

ArrayList 항목 정렬하기

Collections.sort() 메소드를 사용하면 ArrayList의 항목들을 오름차순으로 정렬할 수 있습니다.

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Orange");
    fruitBasket.add("Apple");
    fruitBasket.add("Grapes");
    fruitBasket.add("Banana");
    System.out.println(fruitBasket);

    Collections.sort(fruitBasket);
    System.out.println(fruitBasket);
  }
}

실행 결과:

#정렬 전
[Orange, Apple, Grapes, Banana]

#정렬 후
[Apple, Banana, Grapes, Orange]

ArrayList 항목 순서 뒤집기

Collections.reverse() 메소드를 사용하면 ArrayList의 항목 순서를 역순으로 뒤집을 수 있습니다.

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    System.out.println(fruitBasket);

    Collections.reverse(fruitBasket);
    System.out.println(fruitBasket);
  }
}

실행 결과:

#원본 리스트
[Apple, Banana, Grapes, Orange]

#뒤집기 후
[Orange, Grapes, Banana, Apple]

ArrayList를 배열로 변환하기

toArray() 메소드를 사용하면 ArrayList를 일반 배열로 변환할 수 있습니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");

    String[] fruitArray = new String[fruitBasket.size()];
    fruitBasket.toArray(fruitArray);

    for (String i : fruitArray) {
      System.out.println(i);
    }
  }
}

실행 결과:

Apple
Banana
Grapes
Orange

ArrayList에서 두 항목의 위치 바꾸기

Collections.swap() 메소드를 사용하면 지정한 두 인덱스의 항목 위치를 서로 교환할 수 있습니다.

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket = new ArrayList<>();
    fruitBasket.add("Apple");
    fruitBasket.add("Banana");
    fruitBasket.add("Grapes");
    fruitBasket.add("Orange");
    System.out.println(fruitBasket);

    Collections.swap(fruitBasket, 1, 3);
    System.out.println(fruitBasket);
  }
}

실행 결과:

#교환 전
[Apple, Banana, Grapes, Orange]

#교환 후
[Apple, Orange, Grapes, Banana]

두 개의 ArrayList 합치기

addAll() 메소드를 사용하면 하나의 ArrayList에 다른 ArrayList의 모든 항목을 추가하여 두 리스트를 합칠 수 있습니다.

import java.util.ArrayList;

public class ArrayListTutorial {
  public static void main(String[] args) {
    ArrayList<String> fruitBasket1 = new ArrayList<>();
    ArrayList<String> fruitBasket2 = new ArrayList<>();

    fruitBasket1.add("Apple");
    fruitBasket1.add("Banana");
    fruitBasket1.add("Grapes");
    fruitBasket1.add("Orange");

    fruitBasket2.add("Melon");
    fruitBasket2.add("Strawberries");

    fruitBasket1.addAll(fruitBasket2);

    System.out.println(fruitBasket1);
  }
}

실행 결과:

[Apple, Banana, Grapes, Orange, Melon, Strawberries]

마무리

이 글에서는 Java ArrayList에서 가장 자주 사용되는 연산들을 다양한 예제와 함께 살펴보았습니다. 생성, 추가, 조회, 삭제부터 정렬, 뒤집기, 변환까지 익혀두면 실무에서 컬렉션을 훨씬 편리하게 다룰 수 있습니다.