Java 목록에 대해 add() 및 addAll() 메서드를 사용하는 방법
소개
이 기사에서는 Java의 List
메서드 add()
및 addAll()
에 대해 알아봅니다.
자바 목록 추가()
이 메서드는 목록에 요소를 추가하는 데 사용됩니다. 목록에 요소를 추가하는 두 가지 방법이 있습니다.
add(E e)
: 목록 끝에 요소를 추가합니다.List
는Generics
를 지원하므로 추가할 수 있는 요소의 유형은 목록이 생성될 때 결정됩니다.add(int index, E element)
: 주어진index
에 요소를 삽입합니다. 주어진인덱스
의 요소는 목록의 오른쪽으로 이동합니다. 지정된인덱스
가 범위를 벗어나면 이 메서드는IndexOutOfBoundsException
을 발생시킵니다.
다음은 List
add()
메서드의 몇 가지 예입니다.
package com.journaldev.examples;
import java.util.ArrayList;
import java.util.List;
public class ListAddExamples {
public static void main(String[] args) {
List<String> vowels = new ArrayList<>();
vowels.add("A"); // [A]
vowels.add("E"); // [A, E]
vowels.add("U"); // [A, E, U]
System.out.println(vowels); // [A, E, U]
vowels.add(2, "I"); // [A, E, I, U]
vowels.add(3, "O"); // [A, E, I, O, U]
System.out.println(vowels); // [A, E, I, O, U]
}
}
먼저 이 코드는 A
, E
및 U
를 목록에 추가하고 [A, E, U]를 출력합니다. 코드>.
다음으로 이 코드는 I
를 2
의 인덱스에 추가하여 [A, E, I, U]
를 생성합니다. 그런 다음 3
의 인덱스에 O
를 추가하여 [A, E, I, O, U]
를 생성합니다. 마지막으로 이 목록이 화면에 출력됩니다.
자바 리스트 addAll()
이 메서드는 컬렉션의 요소를 목록에 추가하는 데 사용됩니다. 두 개의 오버로드된 addAll()
메서드가 있습니다.
addAll(Collection extends E> c)
: 이 메서드는 지정된 컬렉션의 모든 요소를 목록. 삽입 순서는 컬렉션 반복자가 반환하는 순서에 따라 다릅니다.addAll(int index, Collection extends E> c)
: 이 메서드를 사용할 수 있습니다. 지정된인덱스
에서 컬렉션의 요소를 삽입합니다. 컬렉션의 요소를 위한 공간을 만들기 위해 목록의 모든 요소가 오른쪽으로 이동합니다.
다음은 List
addAll()
메서드의 몇 가지 예입니다.
package com.journaldev.examples;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ListAddAllExamples {
public static void main(String[] args) {
List<Integer> primeNumbers = new ArrayList<>();
primeNumbers.addAll(Arrays.asList(2, 7, 11));
System.out.println(primeNumbers); // [2, 7, 11]
primeNumbers.addAll(1, Arrays.asList(3, 5));
System.out.println(primeNumbers); // [2, 3, 5, 7, 11]
}
}
먼저 이 코드는 [2, 7, 11]
값으로 새 목록을 만듭니다. 그러면 이 목록이 화면에 출력됩니다.
다음으로 [3, 5]
값으로 두 번째 목록이 생성됩니다. 그런 다음 이 두 번째 목록은 addAll()
의 인덱스가 1
인 첫 번째 목록에 추가됩니다. 그 결과 [2, 3, 5, 7, 11]
목록이 화면에 출력됩니다.
List add() 메서드가 있는 UnsupportedOperationException
List
add()
및 addAll()
메서드 설명서에는 작업이 선택 사항으로 언급되어 있다고 명시되어 있습니다. 목록 구현이 지원하지 않을 수 있음을 의미합니다. 이 경우 목록 add()
메서드는 UnsupportedOperationException
을 발생시킵니다. 목록에 요소를 추가할 때 이 예외가 발생하는 두 가지 일반적인 시나리오가 있습니다.
Arrays.asList()
: 이 메서드는 지정된 배열로 뒷받침되기 때문에 고정 크기 목록을 반환합니다. 목록 크기가 변경되는 모든 작업은UnsupportedOperationException
을 발생시킵니다.Collections.unmodifiableList(List l)
: 이 메서드는 주어진 목록의 수정 불가능한 보기를 반환합니다. 따라서add()
작업은UnsupportedOperationException
을 발생시킵니다.
다음은 고정 크기 목록에서 추가
작업이 있는 UnsupportedOperationException
의 예입니다.
jshell> List<Integer> ints = Arrays.asList(1,2,3);
ints ==> [1, 2, 3]
jshell> ints.add(4);
| Exception java.lang.UnsupportedOperationException
| at AbstractList.add (AbstractList.java:153)
| at AbstractList.add (AbstractList.java:111)
| at (#4:1)
먼저 이 코드는 [1, 2, 3]
의 고정 크기 목록을 만듭니다. 그런 다음 이 코드는 목록에 4
를 추가하려고 시도합니다. 이로 인해 UnsupportedOperationException
이 발생합니다.
다음은 주어진 목록의 수정 불가능한 보기에 대한 추가
작업이 포함된 UnsupportedOperationException
의 예입니다.
jshell> List<String> strs = new ArrayList<>();
strs ==> []
jshell> strs.add("A");
$6 ==> true
jshell> List<String> strs1 = Collections.unmodifiableList(strs);
strs1 ==> [A]
jshell> strs1.add("B");
| Exception java.lang.UnsupportedOperationException
| at Collections$UnmodifiableCollection.add (Collections.java:1058)
| at (#8:1)
먼저 이 코드는 목록에 A
를 추가합니다. 다음으로 이 코드는 이전 목록의 수정할 수 없는 보기에 B
를 추가하려고 시도합니다. 이로 인해 UnsupportedOperationException
이 발생합니다.
결론
이 기사에서는 Java의 List
메서드 add()
및 addAll()
에 대해 배웠습니다.
권장 읽기:
- 자바 목록
- 자바 ArrayList
참조:
- API 문서 나열
- StackOverflow 질문