是否有一个单行(可能来自Guava或Apache Collections)从集合中获取子列表。在内部,它应该执行以下操作:
public <T> List<T> sublist(Set<T> set, int count) {
Iterator<T> iterator = set.iterator();
List<T> sublist = new LinkedList<T>();
int pos = 0;
while (iterator.hasNext() && pos++ < count) {
sublist.add(iterator.next());
}
return sublist;
}
显然,如果没有足够的元素,则必须返回尽可能多的元素。
最佳答案
用 Guava :
return FluentIterable.from(set)
.limit(count)
.toImmutableList();
(此外,与大多数其他解决方案相比,这实际上不会在整个集合上进行迭代-实际上,它将仅对第一个
count
元素进行迭代,然后停止。)