반응형
ArrayList
는 Java의 표준 라이브러리 중 하나로, java.util
패키지에 포함된 클래스입니다. ArrayList
는 크기를 동적으로 조정할 수 있는 배열 기반의 컬렉션 클래스입니다. 이는 고정 크기의 배열보다 유연하게 데이터를 관리할 수 있게 해줍니다.
1. ArrayList
의 특징
- 동적 크기 조절:
ArrayList
는 요소가 추가되거나 제거됨에 따라 자동으로 크기가 조정됩니다. - 빠른 인덱스 접근: 인덱스를 통해 요소에 빠르게 접근할 수 있습니다. 배열과 유사하게 O(1) 시간 복잡도로 요소를 조회할 수 있습니다.
- 유연한 삽입 및 삭제: 요소의 삽입과 삭제가 간편하며, 내부적으로 요소의 이동을 관리합니다.
- 제네릭스 지원:
ArrayList
는 제네릭스를 지원하여 타입 안전성을 제공하며, 다양한 데이터 타입의 요소를 관리할 수 있습니다. - 순차적 데이터 저장: 데이터는 순차적으로 저장되며, 중복된 요소도 허용됩니다.
2. ArrayList
선언과 초기화
ArrayList
를 선언하고 초기화하는 방법은 다음과 같습니다.
import java.util.ArrayList;
ArrayList<데이터타입> 리스트이름 = new ArrayList<>();
예:
ArrayList<String> fruits = new ArrayList<>();
ArrayList<Integer> numbers = new ArrayList<>();
3. ArrayList
사용 예제
ArrayList
를 사용하는 방법을 다양한 예제를 통해 설명하겠습니다.
1. 요소 추가
ArrayList
에 요소를 추가할 때는 add
메서드를 사용합니다.
import java.util.ArrayList;
public class ArrayListAddExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
// 요소 추가
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 모든 요소 출력
System.out.println("Fruits: " + fruits);
}
}
설명:
ArrayList<String>
타입의fruits
리스트를 선언하고 초기화합니다.add
메서드를 사용하여 "Apple", "Banana", "Cherry"를 리스트에 추가합니다.- 리스트의 모든 요소를 출력합니다.
2. 특정 위치에 요소 추가
특정 위치에 요소를 추가하려면 add
메서드에 인덱스를 지정합니다.
import java.util.ArrayList;
public class ArrayListInsertExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 특정 위치에 요소 추가
fruits.add(1, "Mango"); // 인덱스 1에 "Mango" 추가
// 모든 요소 출력
System.out.println("Fruits: " + fruits);
}
}
설명:
add(int index, E element)
메서드를 사용하여 인덱스 1에 "Mango"를 추가합니다.- 리스트의 모든 요소를 출력합니다.
3. 요소 접근 및 변경
ArrayList
의 특정 요소에 접근하거나 변경하려면 get
과 set
메서드를 사용합니다.
import java.util.ArrayList;
public class ArrayListAccessExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 특정 요소 접근
String secondFruit = fruits.get(1); // 인덱스 1의 요소 가져오기
System.out.println("Second fruit: " + secondFruit);
// 특정 요소 변경
fruits.set(2, "Blueberry"); // 인덱스 2의 요소를 "Blueberry"로 변경
// 모든 요소 출력
System.out.println("Fruits after modification: " + fruits);
}
}
설명:
get
메서드를 사용하여 인덱스 1의 요소를 가져옵니다.set
메서드를 사용하여 인덱스 2의 요소를 "Blueberry"로 변경합니다.- 변경된 리스트의 모든 요소를 출력합니다.
4. 요소 제거
특정 인덱스의 요소나 특정 값을 가진 요소를 제거하려면 remove
메서드를 사용합니다.
import java.util.ArrayList;
public class ArrayListRemoveExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
fruits.add("Banana");
// 특정 인덱스의 요소 제거
fruits.remove(1); // 인덱스 1의 요소 제거
// 특정 값을 가진 첫 번째 요소 제거
fruits.remove("Banana"); // 첫 번째 "Banana" 제거
// 모든 요소 출력
System.out.println("Fruits after removal: " + fruits);
}
}
설명:
remove(int index)
메서드를 사용하여 인덱스 1의 요소를 제거합니다.remove(Object o)
메서드를 사용하여 값이 "Banana"인 첫 번째 요소를 제거합니다.- 리스트의 모든 요소를 출력합니다.
5. 리스트의 크기 확인
size
메서드를 사용하여 ArrayList
의 현재 크기를 확인할 수 있습니다.
import java.util.ArrayList;
public class ArrayListSizeExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 리스트의 크기 출력
System.out.println("Number of fruits: " + fruits.size());
}
}
설명:
size
메서드를 사용하여ArrayList
의 크기를 확인하고 출력합니다.
6. 리스트의 요소 확인
ArrayList
에 특정 요소가 있는지 확인하려면 contains
메서드를 사용합니다.
import java.util.ArrayList;
public class ArrayListContainsExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 특정 요소가 리스트에 포함되어 있는지 확인
boolean hasBanana = fruits.contains("Banana");
boolean hasMango = fruits.contains("Mango");
System.out.println("Contains Banana: " + hasBanana);
System.out.println("Contains Mango: " + hasMango);
}
}
설명:
contains
메서드를 사용하여 "Banana"와 "Mango"가 리스트에 포함되어 있는지 확인합니다.- 확인 결과를 출력합니다.
7. 리스트의 모든 요소 순회
ArrayList
의 모든 요소를 순회하며 작업을 수행하려면 for
문이나 향상된 for
문을 사용할 수 있습니다.
import java.util.ArrayList;
public class ArrayListIterationExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// for 문을 사용하여 모든 요소 순회
System.out.println("Using for loop:");
for (int i = 0; i < fruits.size(); i++) {
System.out.println(fruits.get(i));
}
// 향상된 for 문을 사용하여 모든 요소 순회
System.out.println("Using enhanced for loop:");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
설명:
for
문을 사용하여 인덱스를 통해 모든 요소를 순회합니다.- 향상된
for
문을 사용하여 리스트의 모든 요소를 순회합니다.
4. ArrayList
의 제네릭스
ArrayList
는 제네릭스를 사용하여 다양한 데이터 타입을 저장할 수 있습니다. 제네릭스를 사용하면 컴파일 타임에 타입 검사를 할 수 있어 타입 안전성을 제공합니다.
예:
import java.util.ArrayList;
public class GenericArrayListExample {
public static void main(String[] args) {
// Integer 타입의 ArrayList
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
// String 타입의 ArrayList
ArrayList<String> words = new ArrayList<>();
words.add("Hello");
words.add("World");
// 모든 요소 출력
System.out.println("Numbers: " + numbers);
System.out.println("Words: " + words);
}
}
설명:
ArrayList<Integer>
는 정수형 데이터를 저장합니다.ArrayList<String>
는 문자열 데이터를 저장합니다.- 각각의 리스트에 요소를 추가하고 출력합니다.
5. ArrayList
의 주요 메서드
add(E e)
: 리스트의 끝에 요소를 추가합니다
반응형
'언어 > Java' 카테고리의 다른 글
[ Java ] 다차원 배열을 사용하는 예제 (0) | 2024.07.31 |
---|---|
[ Java ] 다중 배열의 생성과 사용하기 (0) | 2024.07.31 |
[ Java ] 배열을 사용한 예제 따라하기 (0) | 2024.06.17 |
[ Java ] 배열의 사용하기 (0) | 2024.06.17 |
[ Java ] 배열의 선언과 초기화 (0) | 2024.06.17 |