简体   繁体   English

复制具有条目限制的Java列表

[英]Copy a java list with a limit of entries

I would like to create a new List<Object> from a simple List<Object> only for the 20 first entries. 我想从一个简单的List<Object>创建一个新的List<Object> ,仅用于20个第一个条目。

//my first array
List<Staff> staffs = new ArrayList<Staff>();

staffs.add(new Staff(...));
staffs.add(new Staff(...));
staffs.add(new Staff(...));
staffs.add(new Staff(...));


List<Staff> second = magicMethodForClone(staffs,20);

I'd like to know if a method like magicMethodForClone exists or not. 我想知道是否存在像magicMethodForClone这样的方法。

Thank you 谢谢

List.subList(0, 20) will throw an Exception if your list contains less than 20 elements. 如果列表包含少于20个元素List.subList(0, 20)将抛出异常。

With Java 8: 使用Java 8:

You can use Stream.limit() : 您可以使用Stream.limit()

List<Staff> second = staffs.stream().limit(20).collect(Collectors.toList());

With Java 7 or lower: 使用Java 7或更低版​​本:

You can use Guava's Iterables.limit() to get all available elements but no more than 20: 您可以使用Guava的Iterables.limit()来获取所有可用元素,但不超过20:

List<Staff> second = Lists.newArrayList(Iterables.limit(staffs, 20));
List<Staff> second = new ArrayList<Staff>(staffs.subList(0, 20));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM