ΠΠ°Π΄Π°ΡΠ° Π½Π΅ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ. ΠΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ?
package com.javarush.task.task08.task0817;
import java.util.*;
/*
ΠΠ°ΠΌ ΠΏΠΎΠ²ΡΠΎΡΡ Π½Π΅ Π½ΡΠΆΠ½Ρ
*/
public class Solution {
public static String generateRandomString() {
String firstNameAndLastName;
String Symbols = "A";
StringBuilder builder = new StringBuilder();
int catNameLength = 4;
for(int i = 0; i < catNameLength; i++){
builder.append(Symbols.charAt((int)(Math.random()*Symbols.length())));
}
firstNameAndLastName = builder.toString();
return firstNameAndLastName;
}
public static HashMap<String, String> createMap() {
HashMap<String, String> map = new HashMap<>();
String s = generateRandomString();
for (int i = 0; i < 9; i++) {
map.put(s + i, s + (i + 1));
}
map.put(s+8, s+1);
map.put(s+9, s+2);
return map;
}
public static void removeTheFirstNameDuplicates(HashMap<String, String> map) {
ArrayList <String> mapValues = new ArrayList<>(map.values());
HashSet <String> repeatedValues = new HashSet<>();
for (String s: mapValues){
if (Collections.frequency(mapValues, s) > 1){
repeatedValues.add(s);
}
}
Iterator iter = repeatedValues.iterator();
while (iter.hasNext()){
String q = iter.next().toString();
removeItemFromMapByValue(map, q);
}
}
public static void removeItemFromMapByValue(HashMap<String, String> map, String value) {
HashMap<String, String> uniqueValuesMap = new HashMap<>(map);
for (Map.Entry<String, String> pair : uniqueValuesMap.entrySet()) {
if (pair.getValue().equals(value))
{
map.remove(pair.getKey());
}
}
}
public static void main(String[] args) {
HashMap<String, String> map = createMap();
removeTheFirstNameDuplicates(map);
}
}