如何从Java 8中的Iterator获取n个第一个值?

我已经使用按照值(Java)将Map 排序到我有一个LinkedHashMap ,即保证迭代顺序的Iterable ,对HashMap进行了排序 。

现在,我想使用一行代码检索地图的前n个条目的java.util.List ,如果可能的话,使用Java 8 Collection Stream API技术。

我发现如何从Iterator获得两个连续值,这解释了有可能用数组做到这一点,但这并不优雅,不同于我获得List意图(虽然可以转换,但这是不必要的步骤)并需要一个额外的方法。

entrySet并将Stream限制为前n元素:

 List> firstN = map.entrySet().stream().limit(n).collect(Collectors.toList()); 

使用StreamEx编写更简洁的代码:

 List> firstN = EntryStream.of(map).limit(n).toList();