Open RafaSamm opened 1 year ago
Oi, Rafa. Tudo bem?
Obrigada pela pergunta, bem interessante. Vamos lá: quando você inicia uma List
com o Arrays.asList()
você cria uma lista que não pode ser modificada. Daí, você esta tentando usar um método que para ele ser executado, por default, ele precisa modificar o objeto.
Iniciei o objeto números com uma lista que pode ser modificada, e deu certo. Sua implementação do método removeIf()
está correta!
Aí para utilizar o método removeIf() você poderá fazer da seguinte forma:
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);
/*numeros.removeIf(n -> n % 2 != 0);
System.out.println(numeros);*/
//Fazendo uma cópia da lista que não pode ser modificada:
List<Integer> numeros2 = new ArrayList<>(numeros);
// Aqui retornará true porque as duas listas contêm os mesmos elementos na mesma ordem.
//Porém, elas são objetos distintos em memória.
System.out.println(numeros2.equals(numeros));
//Agora sim você consegue remover os elementos:
numeros2.removeIf(n -> n % 2 != 0);
System.out.println(numeros2);
}
}
olá, tudo bem Cami....agora eu entendi...muito obrigado...simples e direto....perfeito. No máximo eu estava somente isolando os ímpares dos pares, obrigado!!!!
Olá, estou tentando remover elementos utilizando o removeIf, mas a IDE me passa uma exception = UnsupportedOperationException : remove List numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);
Obs: Tentei de diversas maneiras, mesmo colocando como exceção checada e não checada, simplesmente ele não aceita, o que faço?
att Rafael