将Map <A,B>转换为List <Pair <A,B>>-这是A,B是类的最有效的吗?

时间:2019-06-20 04:35:00

标签: 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中使用流来做到这一点?

1 个答案:

答案 0 :(得分:7)

考虑泛型,您可以按以下方式执行该操作:

<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());
}