Can someone pinpoint flaw in my code?
I think that I properly remove every Value in HashMap that occures more than 1 time.
I also checked with println KEY VALUE to check if it works properly and it did :/
package pl.codegym.task.task08.task0817;
import java.util.HashMap;
import java.util.Map;
/*
Powtórzenia nie są potrzebne
*/
public class Solution {
public static HashMap<String, String> utworzMap() {
HashMap<String, String> spis = new HashMap<String, String>();
spis.put("Stallone", "Celina");
spis.put("Adam", "Ewelina");
spis.put("Bartek", "Adam");
spis.put("Celina", "Damian");
spis.put("Damian", "Franek");
spis.put("Ewelina", "Jezus");
spis.put("Franek", "Stallone");
spis.put("Gosia", "Jezus");
spis.put("Henryk", "Damian");
spis.put("Jezus", "Henryk");
return spis;
}
public static void usunPowtorzoneImiona(Map<String, String> mapa) {
HashMap<String, String> kopia = new HashMap<String, String>(mapa);
for (Map.Entry<String, String> iter : kopia.entrySet()) {
usunElementZMapPoWartosci(mapa, iter.getValue());
}
}
public static void usunElementZMapPoWartosci(Map<String, String> mapa, String wartosc) {
HashMap<String, String> kopia = new HashMap<String, String>(mapa);
int counter = 0;
for (Map.Entry<String, String> para : kopia.entrySet()) {
if (para.getValue().equals(wartosc)) {
counter++;
if (counter > 1) {
mapa.remove(para.getKey());
}
}
}
}
public static void main(String[] args) {
HashMap<String, String> mapa = utworzMap();
usunPowtorzoneImiona(mapa);
}
}