|
компаратор HashMap
|
|||
---|---|---|---|
#18+
Вопрос возник по прочтении этого ответа http://stackoverflow.com/a/1283722/2740224 код: Код: 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.
output: авторunsorted map: {D=67.3, E=100.0, A=99.5, B=67.4, C=67.4} results: {E=100.0, A=99.5, C=67.4, B=67.4, D=67.3} 1.Не могу понять как работает это компаратор. Не понимаю логики его работы. Но он реально работает судя по output. 2.Как это вообще так может быть ? ведь хеш таблица заполняется по определенным правилам и элементы потом в ней ищутся по определенным правилам. Останется ли у новой хеш таблицы доступ O(1) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 12:05 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
по-моему, ключевое во всем этом: Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 15:06 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
rema174, сволочи))) обманули они меня. спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 15:25 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
хотя реализацию компаратора я всё равно не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 15:28 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90, тебя на собеседовании завалят по любому. Кури самые основы хеш-таблиц и бинарных (red/black) деревьев. Иначе будешь вечно плавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 16:02 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
mayton, Просто для меня логичнее видеть такие компараторы Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 16:11 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90, Да добавьте себе в IDE наконец исходники jre runtime, и покопайтесь во всех этих мэпах, сэтах и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 16:52 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90хотя реализацию компаратора я всё равно не понимаю скорее всего, тут большинство не понимают как в деталях телевизор работает, но это не мешает пользоваться телевизором. с другой стороны, там же показана реализация, и если надо наоборот, поменять минус на плюс и делов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 17:40 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90хотя реализацию компаратора я всё равно не понимаю http://ru.wikipedia.org/wiki/Стратегия_(шаблон_проектирования) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 18:38 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
Usman, не в принципе компаратора, а конкретно приведенного мной компаратора))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 20:40 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90, Смысл? Вам нужно отсортировать по значению? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 20:53 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
Usman, да, надо отсортировать. компаратор внутри себя сохраняет HashMap иии....как это помогает отсортировать...непонятно Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 21:21 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90, Для сортировки TreeMap'у нужен компаратор (интерфейс), т.е. внешняя реализации метода compare(a,b) . В качестве аргументов метода compare будут подсовываться значения ключей (а нужны значения. Как быть?) Выход: Делается "финт" в виде класса, реализующего Comparator. НО! Чтобы была возможность отсортировать по значениям, приходится добавлять ссылку на исходный мэп: Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 21:37 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
Usman, ааааааааааа у двух коллекций значения(всмысле не ключи) одинаковые же. спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 22:17 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
P.S. ключи тоже одинаковые, но я про Value имел ввиду ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 22:18 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
хотя я бы сделал компаратор по Map.Entry Тут как-то ненаглядно вышло ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 22:34 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
всё, пазл сложился) public TreeMap(Comparator<? super K> comparator) конструктор принимает только компаратор по ключу) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2014, 22:48 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
только где-то определенно нарушен контракт. Код: java 1.
выводит null. только где. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2014, 11:47 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
так надо Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2014, 12:52 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90так надо Вы читали, что там делается и зачем? Ваш компаратор выкинет два одинаковых значения при разных ключах. :) Тут в качестве из пушки по воробьям TreeMap используется только для одноразовой сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2014, 17:15 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
Сергей Арсеньев Вы читали, что там делается и зачем? Задача отсортировать value у map Сергей АрсеньевВаш компаратор выкинет два одинаковых значения при разных ключах. :) Сортируем по value же. Это нарушает контракт Map разве? В общем я не понял, что конкретно тут плохо. Сергей Арсеньев Тут в качестве из пушки по воробьям TreeMap используется только для одноразовой сортировки. совсем же печально, что мы потом не можем из этой отсортированной мапы ничего взять, а только вывести. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2014, 22:28 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
....а только вывести эту мапу целиком ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2014, 22:29 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
redwhite90что мы потом не можем из этой отсортированной мапы ничего взять Так первоначальная мапа есть. Здесь шутка в том, что алгоритм построения дерева - у TreeMap уже есть им и пользуются. Своего рода антиООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2014, 11:25 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
Когда то передо мной постал вопрос - что если в тримапе есть ентри c одинаковыми ключами. Ответ дает этот пример: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
-- {C=C++, J=Jscript, N=.NET, P=Pascal} Выходит что такого не может быть ибо следуещее значение с тем самым ключем заменяет уже существующее в тримапе, по аналогии из сетом, не выкидывая никаких эсепшенов - public V put(K key, V value) Associates the specified value with the specified key in this map. If the map previously contained a mapping for the key, the old value is replaced. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 14:53 |
|
компаратор HashMap
|
|||
---|---|---|---|
#18+
Но в этом видоизменным примере, когда в конструктор тримапа передается хешмап, возвращается пустой "список", даже если и нет ключей-дуюликатов. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
В чем дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 15:01 |
|
|
start [/forum/topic.php?fid=59&msg=38632103&tid=2121304]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
290ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 401ms |
0 / 0 |