powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / HashMap - повторы значений
45 сообщений из 45, показаны все 2 страниц
HashMap - повторы значений
    #38154256
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно убрать все повторяющиеся записи, и вроде все работает.
Проблема в том, что если в записи с ("sd", "Oleg") написать ("sd1", "Oleg"), то метод будет работать неверно...

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
import java.util.HashMap;
import java.util.Map;

public class Solution_2
{
    public static HashMap<String, String> createMap()
    {
    	HashMap<String, String> hm= new HashMap<String, String>();

    	hm.put("qwe", "Igor");
    	hm.put("qweasd", "Igor");
    	hm.put("sd", "Oleg");
    	hm.put("asd", "Petr");
    	hm.put("zxc", "Petr");
    	hm.put("qwwe", "Igor");
    	hm.put("fda", "Semen");
    	hm.put("gda", "Semen");
    	hm.put("hda", "Semen");
    	hm.put("jda", "Semen");

        return hm;
    }

    public static void removeTheFirstNameDuplicates(HashMap<String, String> map)
    {
        
        for(int i=0; i<map.size(); i++){
    		
        	int count=0; 
    		String currentName; 
    		String tempName="";
    		Boolean chek = false;
    		
	        for (Map.Entry<String, String> pair: map.entrySet())
	        {
	        	
	        	currentName=pair.getValue();
	        	System.out.println("currentName = " + currentName);
	        	if (!chek) { tempName=currentName; chek = true; }
	        	if (currentName.equals(tempName)) count++;
	        }
	        System.out.println("Current count = " + count);
	        // запуск очистки, если больше одного повтора
	        if(count > 1) {
	        	System.out.println("запускаю очистку по "+ tempName);
	        	removeItemFromMapByValue(map, tempName);
	        }
	        if((map.size())==1) break;
        }
    }
    
    public static void removeItemFromMapByValue(HashMap<String, String> map, String value)
    {
        HashMap<String, String> copy = new HashMap<String, String>(map);
        for (Map.Entry<String, String> pair: copy.entrySet())
        {
            if (pair.getValue().equals(value))
                map.remove(pair.getKey());
        }
    }
    
    public static void main(String[] args) {
		HashMap<String, String> map=createMap();
		removeTheFirstNameDuplicates(map);
		System.out.println(map);
	}
}
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154262
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

а по какому принципу определить, какого из них убрать?
Код: java
1.
2.
3.
4.
        hm.put("fda", "Semen");
    	hm.put("gda", "Semen");
    	hm.put("hda", "Semen");
    	hm.put("jda", "Semen");
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154266
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
Вот решение в лоб, зато простое и понятное
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
public class MapCleaner {
   public static void clean(){
       HashMap<String, String> hm= new HashMap<>();

    	hm.put("qwe", "Igor");
    	hm.put("qweasd", "Igor");
    	hm.put("sd", "Oleg");
    	hm.put("asd", "Petr");
    	hm.put("zxc", "Petr");
    	hm.put("qwwe", "Igor");
    	hm.put("fda", "Semen");
    	hm.put("gda", "Semen");
    	hm.put("hda", "Semen");
    	hm.put("jda", "Semen");
        
        List<String> duplicates = new ArrayList<>();
        List<String> keys = new ArrayList<>();
       
        for(Map.Entry<String,String> entry:hm.entrySet()){
            if(duplicates.contains(entry.getValue())){
                keys.add(entry.getKey());
            }else{
                duplicates.add(entry.getValue());
            }
        }
        
        for(String key:keys){
            hm.remove(key);
        }
        System.out.println(hm);
    
   }

}
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154271
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,

+1

rema174,

Все бы ничего, но как вы собираетесь найти TheFirstName .
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154272
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerrema174,

а по какому принципу определить, какого из них убрать?
Код: java
1.
2.
3.
4.
        hm.put("fda", "Semen");
    	hm.put("gda", "Semen");
    	hm.put("hda", "Semen");
    	hm.put("jda", "Semen");




разные ключи - разные записи, убрать все потворы по именам, т.е. всех семенов
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154274
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
но один должен остаться, кто это будет?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154276
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все бы ничего, но как вы собираетесь найти TheFirstName .[/quot]
Что вы понимате под TheFirstName?
Это часть имени метода, а метод должен почистить все дупликаты по именам.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154278
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerrema174,
но один должен остаться, кто это будет?

нет, все семены должны уйти
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154280
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
то есть из вашего набора вообще только Oleg должен остаться?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154283
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174Что вы понимате под TheFirstName?
Это часть имени метода, а метод должен почистить все дупликаты по именам.

Порядок добавления в мэп не совпадет с порядком итерирования коллекции,
отсюда - невозможно узнать, какое имя будет первым.

Или все же 13937484 ?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154286
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerrema174,
то есть из вашего набора вообще только Oleg должен остаться?

В данном случае, да.
Набор значений - это частный пример.
Если еще добавить
Код: java
1.
hm.put("zsd1", "Zidan");


то останутся Oleg и Zidan.
Но если написать (" zsd ", "Zidan"), то уже не верно будет....
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154288
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
скажите, а где может найти применение такое жестокое уничтожение дубликатов?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154291
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Порядок добавления в мэп не совпадет с порядком итерирования коллекции,
отсюда - невозможно узнать, какое имя будет первым.

Или все же 13937484 ?

В данном случае не важно какое имя будет первым, предполагается что метод должен убрать всех дубликатов, если в value все "семены", то никого и не останется.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154293
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerrema174,
скажите, а где может найти применение такое жестокое уничтожение дубликатов?

это задача такая, условие не я придумал :-) кроме того, последний метод уже был задан
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154294
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapecker, ваше решение мне понятно, спасибо, но условие было другое
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154297
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Map<String, String> hm = new HashMap<String, String>() {
    Map<String, String> map = new HashMap<String, String>();

    @Override
    public String put(String key, String value) {
        if (map.containsKey(value)) {
            String k = map.get(value).toString();
            return super.remove(k);
        }
        map.put(value, key);
        return super.put(key, value);
    }
};

hm.put("qwe", "Igor");
hm.put("qweasd", "Igor");
hm.put("sd", "Oleg");
hm.put("asd", "Petr");
hm.put("zxc", "Petr");
hm.put("qwwe", "Igor");
hm.put("fda", "Semen");
hm.put("gda", "Semen");
hm.put("hda", "Semen");
hm.put("jda", "Semen");

for (Map.Entry<String, String> kv: hm.entrySet()) {
    System.out.format("[%s] = %s\n", kv.getKey(), kv.getValue());
}
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154300
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
если мое решение понятно, то должно быть понятно и то, что из него прямо вытекает решение которое удовлетворяет вашим условиям:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
public class MapCleaner {

    public static void clean() {
        HashMap<String, String> hm = new HashMap<>();

        hm.put("qwe", "Igor");
        hm.put("qweasd", "Igor");
        hm.put("sd1", "Oleg");
        hm.put("asd", "Petr");
        hm.put("zxc", "Petr");
        hm.put("qwwe", "Igor");
        hm.put("fda", "Semen");
        hm.put("gda", "Semen");
        hm.put("hda", "Semen");
        hm.put("jda", "Semen");

        Map<String, String> duplicates = new HashMap<>();
        List<String> keys = new ArrayList<>();

        for (Map.Entry<String, String> entry : hm.entrySet()) {
            if (duplicates.containsKey(entry.getValue())) {
                keys.add(entry.getKey());
                String val = duplicates.get(entry.getValue());
                if (!keys.contains(val)) {
                    keys.add(val);
                }
            } else {
                duplicates.put(entry.getValue(), entry.getKey());
            }
        }

        for (String key : keys) {
            hm.remove(key);
        }
        System.out.println(hm);

    }
}
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154309
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
благодарю откликнувшихся, попробую адаптировать
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154388
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
покрутил чуть, теперь работает
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public static void removeTheFirstNameDuplicates(HashMap<String, String> map)
    {
    	ArrayList<String> keyList=new ArrayList<String>();
    	for(int i=0; i<15; i++){
        	int count=0;
    		String currentName; String currentKey = null;
    		String tempName=""; Boolean chek = false;
	        for (Map.Entry<String, String> pair: map.entrySet())
	        {
	        	currentKey=pair.getKey();
	        	if(!keyList.isEmpty()) {
	        		if(keyList.contains(currentKey)) continue;
	        		chek=false;
	        	}
	        	currentName=pair.getValue();
	        	if (!chek) { tempName=currentName; chek = true; }
	        	if (currentName.equals(tempName) & chek) count++;
	        }
	        if (count==0) break; 
	        else if (count==1) keyList.add(currentKey); 
	        else { removeItemFromMapByValue(map, tempName); }
        }
    }
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154397
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olega жалко
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154407
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
а с чего вы взяли, что дубликаты у вас будут идти по порядку друг за другом?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154503
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapecker,
Всмысле не будет работать, если они хаотично перемешаны? Работает и в хаотичном порядке.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154585
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
а так?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        hm.put("qwe", "Igor");
        hm.put("qweasd", "Igor");
        hm.put("sd1", "Oleg");
        hm.put("asd", "Petr");
        hm.put("zxc", "Petr");
        hm.put("qwwe", "Igor");
        hm.put("fda", "Semen");
        hm.put("hda", "Semen");
        hm.put("jda", "Semen");
        hm.put("asdf", "Petro");
        hm.put("asdfd", "Костя");
        hm.put("gda", "Semen");
        hm.put("вмвм", "4343");
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154650
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapecker,
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154676
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

странно, вот собрал в кучу все ваше:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
public class Test {

    public static void main(String[] args) {
        HashMap<String, String> hm = new HashMap<>();

        hm.put("qwe", "Igor");
        hm.put("qweasd", "Igor");
        hm.put("sd1", "Oleg");
        hm.put("asd", "Petr");
        hm.put("zxc", "Petr");
        hm.put("qwwe", "Igor");
        hm.put("fda", "Semen");
        hm.put("hda", "Semen");
        hm.put("jda", "Semen");
        hm.put("asdf", "Petro");
        hm.put("asdfd", "Костя");
        hm.put("gda", "Semen");
        hm.put("вмвм", "4343");

        removeTheFirstNameDuplicates(hm);
        System.out.println(hm);
    }

    public static void removeTheFirstNameDuplicates(HashMap<String, String> map) {
        ArrayList<String> keyList = new ArrayList<String>();
        for (int i = 0; i < 15; i++) {
            int count = 0;
            String currentName;
            String currentKey = null;
            String tempName = "";
            Boolean chek = false;
            for (Map.Entry<String, String> pair : map.entrySet()) {
                currentKey = pair.getKey();
                if (!keyList.isEmpty()) {
                    if (keyList.contains(currentKey)) {
                        continue;
                    }
                    chek = false;
                }
                currentName = pair.getValue();
                if (!chek) {
                    tempName = currentName;
                    chek = true;
                }
                if (currentName.equals(tempName) & chek) {
                    count++;
                }
            }
            if (count == 0) {
                break;
            } else if (count == 1) {
                keyList.add(currentKey);
            } else {
                removeItemFromMapByValue(map, tempName);
            }
        }
    }

    public static void removeItemFromMapByValue(HashMap<String, String> map, String value) {
        HashMap<String, String> copy = new HashMap<String, String>(map);
        for (Map.Entry<String, String> pair : copy.entrySet()) {
            if (pair.getValue().equals(value)) {
                map.remove(pair.getKey());
            }
        }
    }
}


получаю на выходе
{sd1=Oleg}
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38154688
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapecker,
дело во внешнем цикле, я тестировал на 15 элементах - так и осталось...
замените на i<map.size();
должно работать!
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38217533
SergeyKandalintsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rema174, задачка еще актуальна?

Вот мой вариант метода removeTheFirstNameDuplicates:
public static void removeTheFirstNameDuplicates( HashMap<String, String> map ):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public static void removeTheFirstNameDuplicates( HashMap<String, String> map )
    {
        Set<String> setNames = new HashSet<String>();
        Set<String> duplicateNames = new HashSet<String>();

        for ( Map.Entry<String, String> pair : map.entrySet() )
        {
            String name = pair.getValue();

            if ( setNames.contains( name ) )
            {
                duplicateNames.add( name );
            }
            else
            {
                setNames.add( name );
            }
        }

        for ( String name : duplicateNames )
        {
            removeItemFromMapByValue( map, name );
        }
    }


За один проход коллекции формируем множество из дублей имен. Потом перебирая дубли вызываем метод для их удаления из мапы.

Код получился короче и нет вложенных циклов.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38217625
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKandalintsev,
не совсем я понял зачем setNames, но дело в том то автору темы нужно удалять не дубликаты, а все значения, которые повторяются. Например, если в мапе два Семена, то удалить нужно обоих.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38217669
SergeyKandalintsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerне совсем я понял зачем setNames,

в setNames попадут все имена, а в duplicateNames только те, которые встречаются в мапе 2 и более раза.

javapeckerно дело в том то автору темы нужно удалять не дубликаты, а все значения, которые повторяются. Например, если в мапе два Семена, то удалить нужно обоих.

все так и произойдет:
Код: java
1.
2.
3.
4.
for ( String name : duplicateNames ) 
        {
            removeItemFromMapByValue( map, name );
        }


последовательно перебираем элементы множества duplicateNames (Имена которые в исходной мапе встречаются более одного раза)
метод removeItemFromMapByValue( map, name ) удаляет из мапы все пары ключ(Фамилия) --> значение(Имя) с заданным именем name.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564644
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сюда же отпишу.
А как удалить все повторы ключей при количестве вхождений ключа больше заданного n?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564694
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_max,

Map не поддерживает множественное вхождение ключа. Так что количество повторов всегда 1. Читайте javadoc.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564705
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,
Да ладно!

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
         HashMap<String, String> hm = new HashMap<>();
         hm.put("123", "Igor");
         hm.put("123", "Oleg");
         hm.put("123", "Petr");
         hm.put("234", "Igor");
         hm.put("234", "Semen");
         hm.put("345", "Petr");
         hm.put("345", "Igor");
         hm.put("456", "Semen");



Не взлетит?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564713
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_max,

Не!
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564717
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,

Как "Не!"???
Из работающего примера.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564721
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,

Что тут не нравится?
Value ж разные.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564767
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxСюда же отпишу.
А как удалить все повторы ключей при количестве вхождений ключа больше заданного n?

Блин!
Извиняюсь, туплю к вечеру. :)

Так надо:
А как удалить все повторы ключей, при количестве вхождений ключа для которых количество значений больше заданного n?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38564771
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_max0FD,

Как "Не!"???
Из работающего примера.

Что тут не нравится?
Value ж разные.

Даже не знаю что Вам ответить, читай javadoc :)
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38565544
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_max,

Вам надо запретить менять значение у ключа после нескольких раз?
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38565689
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я фигею с вас, господа не знающие SQL-я. У вас задача лежит в плоскости
создания структуры данных которая не позволяет вставлять дубликаты values.
Тоесть по смыслу нужен unique-констрейнт на коллекцию.

По смыслу это аналог

Код: java
1.
CREATE TABLE map(key VARCHAR PRIMARY KEY, value VARCHAR UNIQUE);



Не нужно делать никакие процедуры removeTheFirstNameDuplicates!

Делайте сразу стуктуру данных которая НЕ ПОЗВОЛЯЕТ дублировать values во время вставок.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38566971
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ фигею с вас, господа не знающие SQL-я. У вас задача лежит в плоскости
создания структуры данных которая не позволяет вставлять дубликаты values.
Тоесть по смыслу нужен unique-констрейнт на коллекцию.

По смыслу это аналог

Код: java
1.
CREATE TABLE map(key VARCHAR PRIMARY KEY, value VARCHAR UNIQUE);



Не нужно делать никакие процедуры removeTheFirstNameDuplicates!

Делайте сразу стуктуру данных которая НЕ ПОЗВОЛЯЕТ дублировать values во время вставок.Хм...
Вот теперь вопрос на понимание: ежели по условиям задачи необходимо из массива объектов с разными ключами, но с одинаковыми значениями найти количество этих самых одинаковых значений? или если ключ есть переменная типа "numeric"(ну так просто символьная строка содержащая числа, которая генерируется уникальным образом по нарастающей), и Вам необходимо без использования SQL найти максимальный ключ при группировке по значению. Понятно, что на SQL это решается одной строкой... Теперь это-же нужно решить на Java.

Так что не надо пытаться притянуть SQL там где он не всегда и нужен. Рассматривайте задачу именно в плоскости Java, без использования сторонних технологий... Тогда это будет честно.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38567357
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxТак надо:
А как удалить все повторы ключей, при количестве вхождений ключа для которых количество значений больше заданного n?
Это просто, если только определить, какой ключ (какие ключи) стоит удалять из множества ключей сопоставленных с одним "значением" (или с эквивалентными значениями).

например,

1->"a"
2->"a"
3->"a"

А надо не более 2-х повторов.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38567442
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov, я и говорю. Делайте ПРАВИЛЬНУЮ СТРУКТУРУ данных. С ограничениями
по уникальности.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38567465
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Ну тут вопрос не только в ограничении.
Может быть ситуация - старые отбрасывать, а новые добавлять и т.п.
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38567478
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То-же самое. Структура данных.

А то у вас выглядит так. "- А давайте-ко прогузим в мемори гигабайт физлиц а потом
покумекаем чо как там с дубликатами делать".
...
Рейтинг: 0 / 0
HashMap - повторы значений
    #38568120
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА то у вас выглядит так. "- А давайте-ко прогузим в мемори...
Или так - отсеять те команды которые на групповом этапе набрали одинаковое количество очков.
Согласитесь, вешать констреинт на то, что команды могут набирать одинаковое количество очков не комильфо.

Все зависит от задачи.
...
Рейтинг: 0 / 0
45 сообщений из 45, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / HashMap - повторы значений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]