Установка идентификатора с потоком Java 8 - PullRequest
0 голосов
/ 27 августа 2018

У меня есть сервер POJO, и я даю вам детали этого POJO и связанного с ним по ссылке ниже

Структура POJO

Я устанавливаю идентификатор длякаждый сервер основан на условии, когда primaryipaddress одинаковы, но проблема в db заключается в том, что какой-то сервер может не иметь первичного адреса ip .

Я написалпростое решение для каждого, но мне нужно написать его с использованием функционального программирования

for(Server srv : filteredList) {
                for(Server dbsrv : currServerList) {
                    logger.debug("dbsrv ipadd --> " + dbsrv.getPrimaryIpAddress());
                    logger.debug("impsrv ipadd --> " + srv.getPrimaryIpAddress());
                    if(dbsrv.getPrimaryIpAddress()!= null && dbsrv.getPrimaryIpAddress().equals(srv.getPrimaryIpAddress())) {
                        srv.setId(dbsrv.getId());
                        logger.debug("in setting server id");
                        break;
                    }
                }
            }

Я пытался таким образом, но на каждом сервере был установлен одинаковый идентификатор

 filteredList.stream().filter(s->currListPrimaryIpAddress.contains(s.getPrimaryIpAddress()))
                .forEach(srv -> srv.setId(currServerList.stream().filter(server->primaryIpAddresses.contains(server.getPrimaryIpAddress()))
                .findFirst()
                .get().getId()));

Я просто хочу эквивалентный функциональный код для простого выше для каждого, и тогда моя проблема будет решена

1 Ответ

0 голосов
/ 27 августа 2018

Тогда это очень просто:

filteredList.stream()//
    .forEach(srv -> srv.setId(currServerList.stream() //
        .filter(dbsrv -> dbsrv.getPrimaryIpAddress() != null && dbsrv.getPrimaryIpAddress().equals(srv.getPrimaryIpAddress()))//
        .findFirst().map(f -> f.getId()).orElse(null)) //
);

Если ip currentServer не совпадает с ip dbServer (фильтр не является истинным для currentServer), тогда findfirst будет пустым, необязательно, тогда мы установим nullдля Ip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...