Programing

주어진 수의 요소로 목록 자르기

crosscheck 2020. 7. 29. 07:43
반응형

주어진 수의 요소로 목록 자르기


어떤 방법 (예 : 처음 100 개 요소)으로 목록을 잘라내어 다른 요소를 버리는가? (개별 요소를 반복하지 않고)?


사용 List.subList:

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));

목록이 지정된 크기보다 짧은 경우 범위를 벗어난 예외가 예상 됩니다. 원하는 크기의 최소값과 목록의 현재 크기를 끝 인덱스로 선택하십시오.

마지막으로, 두 번째 인수는 마지막으로 원하는 인덱스보다 하나 더 많아야합니다.


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

반응형