>  기사  >  Java  >  Java에서 ArrayList를 여러 하위 목록으로 효율적으로 분할하는 방법은 무엇입니까?

Java에서 ArrayList를 여러 하위 목록으로 효율적으로 분할하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-15 08:34:02595검색

How to Efficiently Split an ArrayList into Multiple Sublists in Java?

ArrayList를 여러 하위 목록으로 분할

Java에서는 ArrayList를 더 작고 동일한 크기의 하위 목록으로 효율적으로 분할할 수 있습니다. 이는 한 입 크기의 청크로 데이터를 처리하거나 관리해야 하는 시나리오에 유용합니다.

subList()를 사용하여 뷰 생성

subList() 메서드 ArrayList 클래스를 사용하면 지정된 범위 내에서 원본 목록의 일부를 볼 수 있습니다. subList()에 대한 호출은 새 목록을 생성하지 않지만 기존 목록에 대한 보기를 반환합니다. 하위 목록에 대한 모든 변경 사항은 원본 목록에 반영되며 그 반대의 경우도 마찬가지입니다.

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

List<Integer> head = numbers.subList(0, 4); // View from index 0 to index 3 (exclusive)
List<Integer> tail = numbers.subList(4, 8); // View from index 4 to index 7 (exclusive)

비보기 하위 목록 생성

하위 목록이 독립적이어야 하는 경우 원본 목록의 경우 하위 목록 보기에서 새 ArrayList 개체를 명시적으로 생성할 수 있습니다.

List<List<Integer>> chopped = new ArrayList<>();
for (int i = 0; i < numbers.size(); i += L) {
    List<Integer> sublist = new ArrayList<>(
        numbers.subList(i, Math.min(numbers.size(), i + L))
    );
    chopped.add(sublist);
}

이 접근 방식은 하위 목록의 전체 복사본을 생성하여 잘린 하위 목록의 변경 사항이 원본 목록에 영향을 미치지 않도록 합니다.

사용 예

[5, 3, 1, 2, 9, 5, 0, 7]을 포함하는 숫자라는 정수 목록을 생각해 보세요. 다음 코드를 사용하여 이 목록을 크기 3의 하위 목록 3개로 분할할 수 있습니다.

List<List<Integer>> choppedLists = chopped(numbers, 3);

choplists 변수에는 이제 3개의 목록이 포함됩니다: [[5, 3, 1], [2, 9, 5] , [0, 7]]. 원래 번호 목록을 변경하지 않고도 이러한 하위 목록을 추가로 수정할 수 있습니다.

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

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