[英]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.