sourcecode

지정된 수의 요소로 목록을 잘라냅니다.

copyscript 2022. 11. 26. 08:45
반응형

지정된 수의 요소로 목록을 잘라냅니다.

목록을 잘라내는 방법(예를 들어 처음 100개의 요소로)은 (개개의 요소를 통해 반복하지 않고) 다른 요소를 폐기하는 방법입니까?

사용방법:

import java.util.*;
import static java.lang.Math.min;

public class T {
  public static void main( String args[] ) {
    List<String> items = Arrays.asList("1");
    List<String> subItems = items.subList(0, min(items.size(), 2));

    // Output: [1]
    System.out.println( subItems );

    items = Arrays.asList("1", "2", "3");
    subItems = items.subList(0, min(items.size(), 2));

    // Output: [1, 2]
    System.out.println( subItems );
  }
}

명심해야 할 것은subList항목의 보기를 반환하므로 목록의 나머지 부분을 가비지 수집에 적합하게 하려면 원하는 항목을 새 항목에 복사해야 합니다.List:

List<String> subItems = new ArrayList<String>(items.subList(0, 2));

목록이 지정된 크기보다 짧을 경우 범위를 벗어난 예외를 예상합니다.원하는 크기의 최소값과 목록의 현재 크기를 종료 인덱스로 선택합니다.

마지막으로 두 번째 인수는 마지막으로 원하는 인덱스보다1개 더 많은 인수여야 합니다.

list.subList(100, list.size()).clear();

또는 다음과 같이 입력합니다.

list.subList(0, 100);

subList다른 답변에서 제시된 바와 같이, 가장 먼저 떠오르는 것이 '입니다.는 또한 스트림 어프로치를 제안할 것이다.

source.stream().limit(10).collect(Collectors.toList()); // truncate to first 10 elements
source.stream().skip(2).limit(5).collect(Collectors.toList()); // discards the first 2 elements and takes the next 5

언급URL : https://stackoverflow.com/questions/1279476/truncate-a-list-to-a-given-number-of-elements

반응형