Answers:
用途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));
如果列表短于指定的大小,则应超出范围例外。选择所需大小的最小值和列表的当前大小作为结束索引。
最后,请注意,第二个参数应比上一个所需的索引大一个。
Stream.limit
应该做的伎俩(docs.oracle.com/javase/8/docs/api/java/util/stream/...)
list.subList(100, list.size()).clear();
要么:
list.subList(0, 100);
list = list.subList(0, 100)
subList(100, list.size()).clear()
仅当list实现了clear方法时,该方法才有效,例如,如果您list
通过List<String> list = Arrays.asList(someString.split(","));
clear()创建将抛出异常,UnsupportedOperationException
因为list
它将是abstract List
。
list.subList(n, list.size()).clear();