在 Java 中创建集合的子集

2022-09-01 06:19:02

我有一个,即一个有序集合。我试图找到一个函数来返回集合的子集,即集合的前20个元素。我知道我可以通过创建一个新集,然后使用第一个集的迭代来填充它,但我希望能有更简洁的东西。LinkedHashSet

还看了一下谷歌的番石榴库,但看不到我想要的东西。


答案 1

在番石榴中:

Set<Integer> subset = ImmutableSet.copyOf(Iterables.limit(set, 20));

请注意,这是懒惰地评估的,因此只创建一个额外的集合。Iterables.limit()


答案 2

在Java 8中,你可以做

mySet.stream()
   .skip(start) // the offset
   .limit(count) // how many items you want
   .collect(Collectors.toSet());

推荐