java - 将 Map<A, B> 转换为 List< Pair<A,B>> - 在 A、B 是类的情况下,这是最有效的吗?

标签 java java-8 java-stream

我有一个 Map 对,想把它变成一个带有 Pair 对象的 ArrayList。

我知道我可以做这样的事

List<Pair<A,B>> nvpList = new ArrayList<Pair<A,B>>(2);
for(Map.Entry<String, String> entry : pairs.entrySet()){
  Pair n = new Pair(entry.getKey(), entry.getValue());
  nvpList.add(n);
}

我们如何在 java8 中使用流来做到这一点?

最佳答案

考虑到泛型,您可以将其执行为:

<A, B> List<Pair<A, B>> convertMapToListOfPairs(Map<A, B> pairs) {
    return pairs.entrySet().stream()
            .map(entry -> Pair.of(entry.getKey(), entry.getValue()))
            .collect(Collectors.toList());
}

关于java - 将 Map<A, B> 转换为 List< Pair<A,B>> - 在 A、B 是类的情况下,这是最有效的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56679047/

相关文章:

java - 要读取的文本文件的正确文件路径

java - 如何使用 spring 缓存抽象返回条目数

java - json 请求枚举

java - 尝试在匿名类中使用最终变量。但它没有传递该值。我无法理解我的错误是什么

java - 在 Action 监听器中使用 Lambda 表达式

java - 如何在listview的列表项之间添加textview?

java-8 - 如何使用 spring 4 @Async 异步发送电子邮件

java - Collectors.groupingBy 进入对象列表?

java - 使用带有参数的方法引用

Java 8 流 : java. lang.IllegalStateException:结束大小 84758 小于固定大小 84764