Преобразование для итерации списка <MutablePair>в строке с Java 8 - PullRequest
3 голосов
/ 08 октября 2019

Как я могу получить левую часть списка MutablePair с Java 8 - потоки, forEach или что-то еще? Код, который я хочу преобразовать в тип Java 8:

for (MutablePair<String, Long> id: list) {
   if (null == value) {
      value = id.getLeft();
   } else {
      value += ", " + id.getLeft();
   }
}

Итак, если у меня есть список как: [(OA,3853), (EE,866), (UN,728), (PP,10)], мне нужно значение как: OA, EE, UN, PP как можно проще. Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 08 октября 2019

используйте map промежуточную операцию для преобразования в Stream<String>, затем joining для накопления элементов в одну строку, разделенную ", " разделителем:

list.stream()
    .map(pair -> pair.getLeft()) // or MutablePair::getLeft
    .collect(Collectors.joining(", "));
2 голосов
/ 08 октября 2019
list.stream()
    .map(MutablePair::getLeft)
    .collect(Collectors.joining(", "));

Есть несколько других опций для Collectors.joining Подробнее об этом здесь

...