filtro de lista em Java8 usando o método IsPresent

ramigani Manjunath:

Eu tenho uma lista que contém alguns valores String. Eu quero fazer uma iteração da lista comparando com outra cadeia. Só se outra string não combinar com qualquer elemento da lista, então eu deveria entrar no loop. Eu tentei algo como abaixo, mas não funcionou. Qualquer outra abordagem alternativa para fazer o mesmo em Java 8?

Nota: No loop eu estou adicionando mais alguns elementos para a mesma lista. Assim, para evitar ConcurrentModificationException, estou usando uma condição se para o meu validação.

List<String> mylist = new ArrayList<>();
mylist.add("test");
mylist.add("test1");

if(mylist.stream()
        .filter(str -> !(str.equalsIgnoreCase("test")))
        .findFirst()
        .isPresent()) {
    System.out.println("Value is not Present");
}
Yassin Hajaj:

Você deve estar usando Stream#noneMatchpara isso. Ele vai fazer seu código mais legível e mais concisa. Além disso, tente evitar colocar a muito dentro da lógica de sua declaração se, extrair um máximo de variáveis legíveis

List<String> mylist = new ArrayList<>();
mylist.add("test");
mylist.add("test1");

Predicate<String> equalsIgnoreCasePredicate = str -> str.equalsIgnoreCase("test");
boolean noneMatchString = mylist.stream().noneMatch(equalsIgnoreCasePredicate);

if (noneMatchString) {
    System.out.println("Value is not Present");
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=162729&siteId=1
Recomendado
Clasificación