List

1. List 선언 및 초기화

  • ArrayList로 List 선언:

List<Integer> list = new ArrayList<>();
  • 초기값을 가진 List 선언:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
  • 빈 리스트 생성:

List<String> emptyList = Collections.emptyList();

2. List 요소 추가

  • 요소 추가 (add()):

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 요소 접근 및 수정

  • 특정 인덱스의 요소 가져오기 (get()):

int value = list.get(2);  // 인덱스 2의 요소 가져오기
  • 특정 인덱스의 요소 수정 (set()):

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-each 반복문을 이용한 순회:

for (int num : list) {
    System.out.println(num);
}
  • forEach() 메서드를 이용한 순회:

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 합집합, 교집합, 차집합

  • 두 리스트의 합집합 (addAll()):

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. 중복 제거

  • 리스트에서 중복 요소 제거 (Set 사용):

List<Integer> uniqueList = new ArrayList<>(new HashSet<>(list));  // 중복 제거된 리스트 생성

14. 리스트에서 최대/최소값 찾기

  • 최대값 찾기 (Collections.max()):

int maxValue = Collections.max(list);  // 리스트에서 최대값 찾기
  • 최소값 찾기 (Collections.min()):

int minValue = Collections.min(list);  // 리스트에서 최소값 찾기

15. 중첩된 리스트 처리

  • 2D 리스트 선언 및 초기화:

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));
  • 2D 리스트 순회:

for (List<Integer> row : matrix) {
    for (int value : row) {
        System.out.print(value + " ");
    }
    System.out.println();
}

Last updated