1. List 선언 및 초기화
List<Integer> list = new ArrayList<>();
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<String> emptyList = Collections.emptyList();
2. List 요소 추가
list.add(10); // 리스트에 10 추가
list.add(0, 5); // 인덱스 0에 5 추가
한 번에 여러 요소 추가 (addAll()
):
List<Integer> anotherList = new ArrayList<>(Arrays.asList(6, 7, 8));
list.addAll(anotherList); // list에 anotherList의 모든 요소 추가
3. List 요소 접근 및 수정
int value = list.get(2); // 인덱스 2의 요소 가져오기
list.set(1, 20); // 인덱스 1의 요소를 20으로 수정
4. List 요소 삭제
특정 인덱스의 요소 삭제 (remove()
):
list.remove(0); // 인덱스 0의 요소 삭제
list.remove(Integer.valueOf(10)); // 값이 10인 첫 번째 요소 삭제
특정 조건을 만족하는 요소 삭제 (removeIf()
):
list.removeIf(num -> num % 2 == 0); // 짝수인 요소 모두 삭제
5. List 탐색
리스트 내 요소의 존재 여부 확인 (contains()
):
boolean hasValue = list.contains(5); // 값 5가 리스트에 존재하는지 확인
특정 요소의 인덱스 찾기 (indexOf()
, lastIndexOf()
):
int index = list.indexOf(10); // 값 10의 첫 번째 인덱스 반환
int lastIndex = list.lastIndexOf(10); // 값 10의 마지막 인덱스 반환
6. List 정렬
오름차순 정렬 (Collections.sort()
):
Collections.sort(list); // 오름차순 정렬
내림차순 정렬 (Collections.reverseOrder()
):
Collections.sort(list, Collections.reverseOrder()); // 내림차순 정렬
7. List 순회
for (int num : list) {
System.out.println(num);
}
list.forEach(num -> System.out.println(num));
8. List 변환
List를 배열로 변환 (toArray()
):
Integer[] arr = list.toArray(new Integer[0]); // 리스트를 배열로 변환
배열을 List로 변환 (Arrays.asList()
):
Integer[] arr = {1, 2, 3};
List<Integer> list = Arrays.asList(arr); // 배열을 리스트로 변환
9. List 복사
깊은 복사 (new ArrayList<>(list)
):
List<Integer> copyList = new ArrayList<>(list); // list의 복사본 생성
리스트의 일부분을 서브리스트로 복사 (subList()
):
List<Integer> subList = list.subList(1, 4); // 인덱스 1부터 4까지의 서브리스트 생성
10. List 요소 치환
모든 요소를 특정 값으로 치환 (Collections.fill()
):
Collections.fill(list, 0); // 리스트의 모든 요소를 0으로 채움
11. List 합집합, 교집합, 차집합
List<Integer> union = new ArrayList<>(list1);
union.addAll(list2); // list1과 list2의 합집합 생성
두 리스트의 교집합 (retainAll()
):
List<Integer> intersection = new ArrayList<>(list1);
intersection.retainAll(list2); // list1과 list2의 교집합 생성
두 리스트의 차집합 (removeAll()
):
List<Integer> difference = new ArrayList<>(list1);
difference.removeAll(list2); // list1에서 list2의 요소를 제외한 차집합 생성
12. List 반전
리스트를 역순으로 변환 (Collections.reverse()
):
Collections.reverse(list); // 리스트를 역순으로 정렬
13. 중복 제거
List<Integer> uniqueList = new ArrayList<>(new HashSet<>(list)); // 중복 제거된 리스트 생성
14. 리스트에서 최대/최소값 찾기
최대값 찾기 (Collections.max()
):
int maxValue = Collections.max(list); // 리스트에서 최대값 찾기
최소값 찾기 (Collections.min()
):
int minValue = Collections.min(list); // 리스트에서 최소값 찾기
15. 중첩된 리스트 처리
List<List<Integer>> matrix = new ArrayList<>();
matrix.add(Arrays.asList(1, 2, 3));
matrix.add(Arrays.asList(4, 5, 6));
matrix.add(Arrays.asList(7, 8, 9));
for (List<Integer> row : matrix) {
for (int value : row) {
System.out.print(value + " ");
}
System.out.println();
}