Yanıtlar:
Kullanım 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Öğelerin bir görünümünü döndürdüğünü aklınızda bulundurmalısınız , bu nedenle listenin geri kalanının çöp toplama için uygun olmasını istiyorsanız, istediğiniz öğeleri yenisine kopyalamanız gerekir List:
List<String> subItems = new ArrayList<String>(items.subList(0, 2));
Liste belirtilen boyuttan daha kısaysa, bir sınır dışı istisna bekleyin . İstenen boyutun minimum değerini ve bitiş dizini olarak listenin geçerli boyutunu seçin.
Son olarak, ikinci bağımsız değişkenin istenen son dizinden bir fazla olması gerektiğini unutmayın.
Stream.limit , bence hile yapmalı ( docs.oracle.com/javase/8/docs/api/java/util/stream/… )
list.subList(100, list.size()).clear();
veya:
list.subList(0, 100);
list = list.subList(0, 100)
subList(100, list.size()).clear()oluşturup eğer liste örneğin, berrak yöntem uygulanmaktadır varsa sadece olacak işi listile List<String> list = Arrays.asList(someString.split(","));(açık atacağım) UnsupportedOperationExceptionberi listsoyut olacaktır List.
list.subList(n, list.size()).clear();
subListdiğer cevaplarda önerildiği gibi akla ilk gelen cevaptır. Ayrıca bir akış yaklaşımı öneririm .
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