GOOGLE ADS

viernes, 15 de abril de 2022

¿Puedo eliminar un elemento al enumerar a través de un objeto de propiedades?

¿Puedo eliminar un elemento al enumerar a través de un objeto de propiedades?


Solución del problema

PropertiesimplementsMap<Object,Object>, por lo que puede iterar sobre Set.iterator()sus Map.entrySet()y llamar Iterator.remove()a ciertas entradas.

 Properties prop = new Properties();
prop.put("k1", "foo");
prop.put("k2", "bar");
prop.put("k3", "foo");
prop.put("k4", "bar");
System.out.println(prop); // prints "{k4=bar, k3=foo, k2=bar, k1=foo}"
Iterator<Map.Entry<Object,Object>> iter = prop.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<Object,Object> entry = iter.next();
if (entry.getValue().equals("bar")) {
iter.remove();
}
}
System.out.println(prop); // prints "{k3=foo, k1=foo}"

La razón por la que desea llamar remove()a un iterator()es porque no desea provocar un ConcurrentModificationException.

Preguntas relacionadas


  • Iterar sobre el mapa

  • iterando y eliminando de un mapa


Muchos principiantes a menudo cuestionan el valor de interfaceJava: este es un gran ejemplo para mostrar cuán poderoso interfacepuede ser. Properties implements Map<Object,Object>, por lo que, a menos que se documente lo contrario, todo lo que puede hacer con un Map, puede hacerlo con un Properties. La información de la pregunta anterior es directamente relevante y directamente aplicable a su situación.

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...