java - 如何从 Java 8 中的迭代器获取 n 个第一个值?

标签 java java-8 java-stream

我已经使用 Sort a Map<Key, Value> by values (Java)HashMap 进行了排序为此,我有一个 LinkedHashMap,即一个保证迭代顺序的 Iterable

现在,如果可能的话,我想使用单行代码检索 map 的第一个 n 条目的 java.util.List 8 集合流 API 技术。

我找到了 how can i get two consecutive values from Iterator这解释了有可能用数组来做到这一点,但这并不优雅,与我想要获得 List 的意图不同(尽管可以转换,但这是不必要的步骤)并且需要额外的方法。

最佳答案

流式传输 entrySet 并将 Stream 限制为前 n 元素:

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

关于java - 如何从 Java 8 中的迭代器获取 n 个第一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44135683/

相关文章:

java - 找不到主类,IntelliJ 正在构建一个 jar

java - 使用 Java/Selenium - 正在运行多少个动画

Java ZonedDateTime 到即时转换

Java - groupingBy 和 collectingAndThen - 有更快/更好/更干净的方法吗?

java - 字符串的排序列表?不使用长度函数查找列表的长度

java - 将消息与目标类实例创建关联的最佳实践

Java 8 是闰年实现。逻辑运算符是什么意思?

Java 8 Streams map API - 方法引用解读

Java流peek()操作

java - 从流中获取父对象