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

发布于 2024-12-27 16:11:42 字数 447 浏览 2 评论 0原文

我想从一个简单的 List仅为前 20 个条目创建一个新的 List

//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);

我想知道像 magicMethodForClone 这样的方法是否存在。

谢谢

I would like to create a new List<Object> from a simple List<Object> only for the 20 first entries.

//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.

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

骄傲 2025-01-03 16:11:42

如果列表包含的元素少于 20 个,List.subList(0, 20) 将抛出异常。

对于Java 8:

您可以使用Stream.limit()

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

使用 Java 7 或更低版本:

您可以使用 Guava 的Iterables.limit() 获取所有可用元素,但不超过 20 个:

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

List.subList(0, 20) will throw an Exception if your list contains less than 20 elements.

With Java 8:

You can use Stream.limit():

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

With Java 7 or lower:

You can use Guava's Iterables.limit() to get all available elements but no more than 20:

List<Staff> second = Lists.newArrayList(Iterables.limit(staffs, 20));
杯别 2025-01-03 16:11:42
List<Staff> second = new ArrayList<Staff>(staffs.subList(0, 20));
List<Staff> second = new ArrayList<Staff>(staffs.subList(0, 20));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文