Hola compañeros, estoy intentando hacer un método en Java pero no me funciona de manera correcta y no consigo ver el error.
Os explico lo que me pasa en el método con un ejemplo: -Tenemos este conjunto:
Set<String> poid = new HashSet<String>();
poid.add("p1");
poid.add("p2");
- y este mapa:
Map<String,String> m = new HashMap<String,String>();
m.put("o1", "p1");
m.put("o2", "p1");
m.put("o11", "p2");
m.put("o12", "p2");
Pues bien intento que devuelva otro mapa en el que agrupe cada "o" con su "p".
Esto sería lo que tendría que devolver:
Map<String,List<String>> ml = new HashMap<String,List<String>>();
<"p1",<"o1","o2">>
<"p2",<"o11","o12">>
Aquí el algoritmo que hice, que no funciona bien:
Código JAVA:
Ver originalList<String> ls = new LinkedList<String>();
for (Iterator<String> conjunto = poid.iterator(); conjunto.hasNext();) {
if(m.get(es).equals(ss)){
ls.add(es);
ml.put(m.get(es),ls);
}
}
}
Con este algoritmo lo que devuelve es esto:
<"p1",<"o1","o2","o11","o12">>
<"p2",<"o1","o2","o11","o12">>
Y lo que realmente debería devolver es esto:
<"p1",<"o1","o2">>
<"p2",<"o11","o12">>
¿Qué está fallando?, ¿qué haría falta en el método?. ¿podrían ayudarme?.
Saludos y muchas gracias.