Java 8 - зацикливание карты внутри списка с использованием потока - PullRequest
3 голосов
/ 02 апреля 2019

У меня есть один список и карта, где мне нужно сначала перебрать список, и внутри этого цикла мне нужно получить доступ к карте для формирования сообщения String. Я написал то же самое в Java 7, и он отлично работает. Может ли кто-нибудь помочь в преобразовании этого в потоковую передачу Java 8.

        final Map<String, String> destTabMap = ... 
        final List<String> destTabs = mappingList.get(destTabName);

        for (int j=0; j < destTabs.size(); j++) {
            String destName = destTabs.get(j);

            final String fieldValue = destTabMap.get(destName);

            if(fieldValue==null)
                continue;


           message.append(destName+"  ");
           message.append(":");
           message.append("  "+fieldValue);
           message.append("\n");
           System.out.println(destName+"  : "+fieldValue);
        }

1 Ответ

4 голосов
/ 02 апреля 2019

Вы можете сделать это так,

String resultStr = destTabs.stream()
    .filter(s -> destTabMap.get(s) != null)
    .map(s -> s + "  :  " + destTabMap.get(s))
    .collect(Collectors.joining("\n"));
...