Сравнение списка объектов в Java 8 - PullRequest
0 голосов
/ 02 июня 2018

Этот пост может быть повторяющимся, извиняюсь за это.

Я много работал над Java-6, теперь перехожу на Java 8. Есть ли эффективный способ переписать приведенную ниже логику в Java 8?

Сравнивает список объектов с одним объектом, возвращая true, если какой-либо объект в списке имеет соответствующее значение параметра «Идентификатор».

private boolean compareOrder(UserOrderDTO.OrderConfig givenDeviceConfig, List<UserOrderDTO.OrderConfig> masterConfigList) {
    boolean isValidService = false;

    for(UserOrderDTO.OrderConfig eachRecord:masterConfigList) {
        if(eachRecord.getIdentifier()!=null && givenDeviceConfig.getIdentifier()!=null) {

            if(eachRecord.getIdentifier().trim().equalsIgnoreCase(givenDeviceConfig.getIdentifier().trim()) ) {
                isValidService = true;
                break;
            }

        }
    }
    return isValidService;
}

Также, если я хочу сравнить два спискаЛюбые предложения, пожалуйста

 List<UserOrderDTO.OrderConfig> oneList = some value;
 List<UserOrderDTO.OrderConfig> twoList = some value;

Ответы [ 2 ]

0 голосов
/ 02 июня 2018
private boolean compareOrder(OrderConfig givenDeviceConfig, List<OrderConfig> masterConfigList) {
    //do null and empty checks here
    return masterConfigList
            .stream()
            .anyMatch(o -> o.getIdentifier().equalsIgnoreCase(givenDeviceConfig.getIdentifier()));
}

Вы можете использовать this для сравнения списка.Если вы не хотите включать библиотеку, есть много ответов о стеке потока для сравнения Collections.

0 голосов
/ 02 июня 2018
private boolean compareOrder(UserOrderDTO.OrderConfig givenDeviceConfig, List<UserOrderDTO.OrderConfig> masterConfigList) {

    return givenDeviceConfig.getIdentifier() != null
            && masterConfigList.stream().anyMatch(
                    p -> p.getIdentifier() != null
                         && p.getIdentifier().trim().equalsIgnoreCase(givenDeviceConfig.getIdentifier().trim()));

}

.

private static boolean compareOrderLists(List<UserOrderDTO.OrderConfig> list1, List<UserOrderDTO.OrderConfig> list2) {

    return list1.stream().anyMatch(
            p -> p.getIdentifier() != null 
                 && list2.stream().anyMatch(
                        p2 -> p2.getIdentifier() != null 
                              && p2.getIdentifier().trim().equalsIgnoreCase(p.getIdentifier())));

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