implementar - map java example
¿Insertar en hashmap, teniendo en cuenta los duplicados en Set? (2)
Entonces, que yo sepa, los duplicados no están permitidos en un conjunto de Java. ¿Por qué entonces en este fragmento de código el código parece tratar de tener en cuenta los duplicados?
public static Subarray findSmallestSubarrayCoveringSet(List<String> paragraph,Set<String> keywords) {
Map<String, Integer> keywordsToCover = new HashMap<>();
for (String keyword : keywords) {
keywordsToCover.put(keyword,
keywordsToCover.containsKey(keyword)? keywordsToCover.get(keyword) + 1: 1);
}
¿Por qué no tener solo keywordsToCover.put (palabra clave, 1) dentro del ciclo for?
Estás en lo correcto aquí, la llamada keywordsToCover.containsKey(keyword)
nunca sería cierta . Parece que quien escribió el código no entendió cuál es el propósito de un Set
o lo han hecho erróneamente (aunque eso es poco probable). por lo tanto, solo la llamada keywordsToCover.put(keyword,1)
sería suficiente.
Estás en lo correcto, como dice en el Javadoc :
un
Set
es una colección que no contiene elementos duplicados.
Quien haya escrito esa muestra no está al tanto de este hecho.
Nunca habrá un caso donde keywordsToCover.containsKey(keyword)
devuelva true , a menos que keywordsToCover
se inicialice (fuera del método) como estático y no se reconstruya cada vez que se findSmallestSubarrayCoveringSet
.