Java ArrayList Methods
자바에서의 ArrayList 메서드 (Java ArrayList Methods)
- *
ArrayList
*는 자바의 동적 배열로, 크기가 고정된 배열과 달리 동적으로 크기가 변하는 배열입니다.ArrayList
는 java.util.ArrayList 클래스에 속하며, 배열과 달리 삽입, 삭제 등의 작업이 유연합니다.ArrayList
는 List 인터페이스를 구현하고 있어 리스트에 관련된 많은 메서드를 제공합니다.
ArrayList 생성
ArrayList
는 new
키워드를 사용하여 생성할 수 있으며, 제네릭을 사용하여 타입을
지정할 수 있습니다.
ArrayList 생성 예시
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// String 타입의 ArrayList 생성
ArrayList<String> fruits = new ArrayList<>();
// 정수형 ArrayList 생성
ArrayList<Integer> numbers = new ArrayList<>();
}
}
설명:
ArrayList<String>
은 문자열 타입의 요소만 저장할 수 있습니다.ArrayList<Integer>
는 정수 타입의 요소만 저장할 수 있습니다.
주요 ArrayList
메서드
1. add()
: 요소 추가
add()
메서드는 ArrayList
에 요소를 추가합니다. 인덱스를 지정하지 않으면 리스트의 끝에
추가되며, 특정 인덱스를 지정하여 요소를 삽입할 수도 있습니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
// 요소 추가
fruits.add("Apple");
fruits.add("Banana");
// 특정 인덱스에 요소 삽입
fruits.add(1, "Orange");
System.out.println(fruits); // 출력: [Apple, Orange, Banana]
}
}
2. get()
: 특정 요소 가져오기
get()
메서드는 ArrayList
에서 특정 인덱스의 요소를 가져옵니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
// 인덱스 0의 요소 가져오기
String fruit = fruits.get(0);
System.out.println(fruit); // 출력: Apple
}
}
3. set()
: 요소 수정
set()
메서드는 ArrayList
의 특정 인덱스에 있는 요소를 다른 값으로 수정합니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
// 인덱스 1의 요소 수정
fruits.set(1, "Orange");
System.out.println(fruits); // 출력: [Apple, Orange]
}
}
4. remove()
: 요소 제거
remove()
메서드는 ArrayList
에서 특정 인덱스 또는 특정 값을 가진 요소를 제거합니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// 인덱스 1의 요소 제거
fruits.remove(1);
// 특정 값을 가진 요소 제거
fruits.remove("Orange");
System.out.println(fruits); // 출력: [Apple]
}
}
5. size()
: 리스트 크기 반환
size()
메서드는 ArrayList
의 **현재 크기(요소의 개수)**를 반환합니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
// 리스트 크기 출력
System.out.println(fruits.size()); // 출력: 2
}
}
6. isEmpty()
: 리스트가 비어있는지 확인
isEmpty()
메서드는 ArrayList
가 비어있는지 여부를 확인합니다. 비어 있으면 true
, 비어 있지
않으면 false
를 반환합니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
// 리스트가 비어있는지 확인
System.out.println(fruits.isEmpty()); // 출력: true
fruits.add("Apple");
System.out.println(fruits.isEmpty()); // 출력: false
}
}
7. contains()
: 특정 요소 포함 여부 확인
contains()
메서드는 ArrayList
에 특정 요소가 포함되어 있는지 확인합니다. 포함되어 있으면
true
, 그렇지 않으면 false
를 반환합니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
// 리스트에 특정 요소 포함 여부 확인
System.out.println(fruits.contains("Apple")); // 출력: true
System.out.println(fruits.contains("Orange")); // 출력: false
}
}
8. clear()
: 모든 요소 제거
clear()
메서드는 ArrayList
의 모든 요소를 제거하여 빈 리스트로 만듭니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
// 모든 요소 제거
fruits.clear();
System.out.println(fruits); // 출력: []
}
}
9. indexOf()
: 특정 요소의 인덱스 찾기
indexOf()
메서드는 ArrayList
에서 특정 요소가 처음으로 나타나는 인덱스를 반환합니다. 요소가 없으면
-1
을 반환합니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Apple");
// 특정 요소의 인덱스 찾기
System.out.println(fruits.indexOf("Apple")); // 출력: 0
System.out.println(fruits.indexOf("Orange")); // 출력: -1
}
}
10. addAll()
: 다른 컬렉션의 모든 요소 추가
addAll()
메서드는 다른 컬렉션의 모든 요소를 ArrayList
에 추가합니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
ArrayList<String> moreFruits = new ArrayList<>();
moreFruits.add("Orange");
moreFruits.add("Grapes");
// 다른 리스트의 모든 요소 추가
fruits.addAll(moreFruits);
System.out.println(fruits); // 출력: [Apple, Banana, Orange, Grapes]
}
}
11. subList()
: 부분 리스트 추출
subList()
메서드는 ArrayList
의 일부 구간을 추출하여 부분 리스트로 반환합니다.
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("Grapes");
// 인덱스 1부터 3까지의 부분 리스트 추출
List<String> subList = fruits.subList(1, 3);
System.out.println(subList); // 출력: [Banana, Orange]
}
}
12. sort()
: 리스트 정렬
sort()
메서드는 ArrayList
의 요소를 정렬합니다. 문자열이나 숫자를 오름차순으로 정렬할 수 있습니다.
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Banana");
fruits.add("Apple");
fruits.add("Grapes");
// 리스트 정렬
Collections.sort(fruits);
System.out.println(fruits); // 출력: [Apple, Banana, Grapes]
}
}
13. forEach()
: 모든 요소에 대해 작업 수행
forEach()
메서드는 ArrayList
의 모든 요소에 대해 작업을 수행
하는 람다식을 사용할 수 있습니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// forEach()를 사용하여 리스트 요소 출력
fruits.forEach(fruit -> System.out.println(fruit));
}
}
출력:
Apple
Banana
Orange
요약
자바의 ArrayList
클래스는 배열의 크기를 유연하게 관리하고 다양한 메서드를 제공하여 데이터를 쉽게 조작할 수 있습니다. 주요 메서드는 다음과
같습니다:
add()
: 요소 추가get()
: 요소 가져오기set()
: 요소 수정remove()
: 요소 제거size()
: 리스트의 크기 반환isEmpty()
: 리스트가 비어있는지 확인contains()
: 특정 요소 포함 여부 확인clear()
: 모든 요소 제거indexOf()
: 특정 요소의 인덱스 반환sort()
,forEach()
: 요소 정렬, 작업 수행
ArrayList
는 동적으로 크기가 변하며 삽입, 삭제 작업에 매우 유용한 자료구조입니다.