如何从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();