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

Kar*_*ter 4 java java-8 java-stream

我已排序的HashMap使用排序的Map <键,值>由值(爪哇)到我有一个LinkedHashMap,即,Iterable其中garantees迭代顺序.

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

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

Era*_*ran 11

流式传输entrySet并限制Stream第一个n元素:

List<Map.Entry<Key,Value>> firstN = 
    map.entrySet().stream().limit(n).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)