Java - removeIf ejemplo

HashMap<Integer, ArrayList<Integer>> cityMap = new HashMap<>();
...    
for (ArrayList<Integer> list : cityMap.values()) {
    int size = list.size();
    if (size > 0) {
        list.removeIf(i -> true);
    }
}

No entiendo muy bien qué removeIfhace en este caso. Especialmente la parte (i -> true ). Gracias por cualquier explicación

Respuesta 1

El Javadoc de removeIf()estados:

Elimina todos los elementos de esta colección que satisfacen el predicado dado.

El predicado en su ejemplo es siempre truedebido a trazar cada entero ien su lista a truepor la expresión: i -> true.

Agregué un ejemplo más simple que elimina todos los enteros pares y mantiene todos los enteros impares por el predicado i % 2 == 0:

Configuración fea:

List<List<Integer>> lists = new ArrayList<List<Integer>>() {{
    add(new ArrayList<>(Arrays.asList(1,2,3,4)));
    add(new ArrayList<>(Arrays.asList(2,4,6,8)));
    add(new ArrayList<>(Arrays.asList(1,3,5,7)));
}};

Mantenga solo números impares:

for (List<Integer> list : lists) {
    list.removeIf(i -> i % 2 == 0);
    System.out.println(list);
}

Salida:

[1, 3]
[]
[1, 3, 5, 7]
Respuesta: 2

Quiero impulsar una consulta en Lucene 7. En las versiones anteriores (<6) solo estaba usando el método setBoost (float boost). es decir, TermQuery termQuery = new TermQuery (nuevo término ("campo", "valor")); ...

¿Existe alguna herramienta de línea de comando que tome la fuente Java y genere diagramas de secuencia? ¿O hay alguna herramienta que convierta el código Java a XML y convierta el XML a diagramas de secuencia en cualquiera de los ...

¿Android cómo pasar la URL en la vista web iframe de Android? Estoy tratando de pasar la URL de forma dinámica del servidor, así que lo que hago si (ResponseProduct.video! = Null) {String html = "<iframe ...

Estoy creando un juego de ajedrez con Java. Como sabes cuando comienzas el juego de ajedrez tienes dos de cada "Capitanes" (lo siento, no estoy seguro de cuál es el término). He creado el siguiente caso de cambio para ...