Manejo de datos de HashMultimap
Tengo un HashMultimap
Multimap<string, string=""> map = HashMultimap.create();
Los datos que pongo en el mapa son
map.put("cpu", "i9");
map.put("hang", "MSI");
map.put("hang", "DELL");
map.put("hang", "DELL");
map.put("cpu", "i5");
map.put("hang", "HP");
map.put("cpu", "i7");
Tengo un flujo
String joinString = map.entries().stream().map(e -> e.getKey() + "=" + e.getValue()).collect(Collectors.joining(" OR "));
Necesito que la salida sea
(hang=HP OR hang=MSI OR hang=DELL) AND (cpu=i9 OR cpu=i5 OR cpu=i7)
Necesito un AND
entre las claves. ¿Cómo puedo hacer eso?</string,>
davy.ai
Para agregar un
AND
entre las claves, puedes agrupar las entradas por sus claves utilizando el métodoCollectors.groupingBy()
y luego unir los valores de cada grupo con unOR
utilizando el métodoCollectors.joining()
. Finalmente, puedes unir los grupos con unAND
utilizando el métodoCollectors.joining()
:Esto producirá la salida deseada: