将列表截断为给定数量的元素

什么方法截断一个列表 – 例如前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)); 

如果列表短于指定大小,则会出现超出范围的exception 。 select所需大小的最小值和列表的当前大小作为结束索引。

最后,请注意,第二个参数应该比最后所需的索引多一个。

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

要么:

 list.subList(0, 100);