Преобразовать карту <A, B> в список <Pair <A, B>> - это наиболее эффективно, когда A, B классы? - PullRequest
3 голосов
/ 20 июня 2019

У меня есть пара Map и я хочу превратить это в ArrayList с объектами Pair.

Я знаю, что могу сделать что-то вроде этого

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 Ответ

7 голосов
/ 20 июня 2019

Учитывая дженерики, вы можете выполнить это как:

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