>Java >java지도 시간 >Java에서 ArrayList를 더 작은 하위 목록으로 분할하는 방법은 무엇입니까?

Java에서 ArrayList를 더 작은 하위 목록으로 분할하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-15 05:42:02462검색

How to Split an ArrayList into Smaller Sublists in Java?

ArrayList를 더 작은 하위 목록으로 분할

Java에서 ArrayList 데이터 구조는 객체 컬렉션을 효율적으로 저장하는 편리한 방법을 제공합니다. 때로는 ArrayList를 지정된 크기의 여러 개의 작은 하위 목록으로 분할해야 하는 경우가 있습니다. 이 기사에서는 이를 효과적으로 달성하는 방법을 살펴봅니다.

불변 뷰에 subList() 사용

subList() 메서드를 사용하면 ArrayList의 일부에 대한 뷰를 생성할 수 있습니다. . 결과 하위 목록은 변경할 수 없습니다. 즉, 수정할 수 없습니다.

List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7));
List<Integer> head = numbers.subList(0, 4);
List<Integer> tail = numbers.subList(4, 8);

하위 목록을 생성한 후 원본 ArrayList에 대한 모든 변경 사항이 하위 목록에 반영됩니다. 반대로 하위 목록을 수정해도 원본 ArrayList에는 영향을 미치지 않습니다.

변경 가능한 하위 목록 생성

변경 가능한 하위 목록이 필요한 경우 subList() 뷰에서 새 ArrayList를 생성하세요.

List<Integer> newHead = new ArrayList<>(head);

편리한 분할을 위한 잘린 함수

여러 하위 목록이 필요한 상황에서는 다음과 같은 유틸리티 함수를 만드는 것이 좋습니다.

static <T> List<List<T>> chopped(List<T> list, final int L) {
    List<List<T>> parts = new ArrayList<>();
    int N = list.size();
    for (int i = 0; i < N; i += L) {
        parts.add(new ArrayList<>(list.subList(i, Math.min(N, i + L))));
    }
    return parts;
}

이 함수는 ArrayList와 원하는 하위 목록 길이를 매개변수로 받아 하위 목록의 목록을 반환합니다.

사용 예

List<Integer> numbers = Collections.unmodifiableList(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7));
List<List<Integer>> parts = chopped(numbers, 3);
System.out.println(parts); // prints "[[5, 3, 1], [2, 9, 5], [0, 7]]"

결론

이 기사에서 설명한 subList() 메서드와 유틸리티 함수를 활용하면 특정 프로그래밍 요구 사항에 맞게 ArrayList를 여러 개의 작은 하위 목록으로 효과적으로 분할할 수 있습니다.

위 내용은 Java에서 ArrayList를 더 작은 하위 목록으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.