|
|
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
To johanna. Никаких баз мне не надо, вообще, а TreMap выбран из-за того, что это хэш и есть удобная и быстрая возможность найти искомый ключ, являющийся словом, увеличить на единицу значение появления этого слова в исследуемых файлах и cделать My_TreeMap.put(word, new String (new_namber)); Когда все файлы просмотрены, просто сделать листинг результатов. Проблема появилась когда решил отсортирвать слова по частоте появления. Если вызываешь так: TreeMap sortedMap = new TreeMap(new MyComp()); То в class MyComp implements Comparator{ public int compare(Object o1, Object o2) { return (o1).compareTo(o2); } Object o1 и Object o2 это ключи TreeMap. Как в нем добраться до значений, соответствующих этим ключам непонятно. Поэтому и спросил совета, возможно ли вообще по простому в данной ситуации как-то вывернуться. Через .... можно хоть десяток способов найти. Но интересно, как это сделать красиво и оптимально, если используешь TreeMap. To NotGonnaGetUs У меня и второй не откомпилировался, но это частности. Через Ж.. можно решить с использованием TreeSet. Пример как сортировать по фамилии, если элемент коллекции: строка Имя Фамилия, есть в любой книге по Java 2. На счет ценности могу поспорить. Как показал поиск в Инете задача, как отсортировать по значения в разных ситуациях достаточно актуальна и эта тема может еще кому-нибудь помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 18:52 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
Сергей. Р.cделать My_TreeMap.put(word, new String (new_namber)); Integer.valueOf(new_namber)!!! Через .... можно хоть десяток способов найти. Но интересно, как это сделать красиво и оптимально, если используешь TreeMap. Использовать HashMap для хранения ключ-значение - это через жопу? :) Достаточно понять только то, что у тебя ключ - это пара "слово" "количество вхождений". Сразу станет понятно, почему тебе нужен Set, а не Map, что бы было красиво. У меня и второй не откомпилировался, но это частности. Соболезную, расставить иморты и назвать правильно файлы, в которые вставляешь код, нужно уже уметь. Как показал поиск в Инете задача, как отсортировать по значения в разных ситуациях достаточно актуальна и эта тема может еще кому-нибудь помочь. Map не определяет порядок элементов. Любые варианты (ТreeMap, LinkedHashMap) это уже извращения, поскольку вольно не вольно превращают map во что-то другое (больше памяти, зависимость времени вставки/выборки от числа записей и т.п. ) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 19:10 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
Использовать HashMap для хранения ключ-значение - это через жопу? :) Это я про сортировку имел в виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 23:21 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
и всё же я бы не стала использовать для этих целей TreeMap. Уже только потому, что мне нужна сортировка как по ключам так и по значениям. Значит создавая TreeMap мы уже сортируем по ключам, хотя это может и не понадобиться. HashMap Быстрее, чем TreeMap. А сортировать в обе стороны можно через Collections.sort и Comparator. Вобщем если переписать мой первый пример, то это будет выглядеть так: Код: plaintext 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. sorted by values: [ix =art, abc=book, lx =cook, rx =cool, nx =dog, uvw=lost, xyz=rest, fvb=value, tpr=value] sorted by keys [abc=book, fvb=value, ix =art, lx =cook, nx =dog, rx =cool, tpr=value, uvw=lost, xyz=rest] Process terminated with exit code 0 причём и уникальные значения без проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 00:53 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
To johanna А я и делал на HashMap порвоначально, но потом не совсем разобравшись, как это будет работать, соблазнился тем, что TreeMap принимает компаратор. Любая проблема имет массу решений, надо только их найти. Буду переделовать на основе Вашего предложения. Спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 12:38 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
To johanna Такая казалось бы мелочная проблема отнимает массу времени. Ваш пример, все равно не так как нужно работает для цифр. Результат: sorted by values: [abc=1, ix =11, tpr=12, lx =3, rx =30, nx =32, uvw=4, xyz=6, fvb=99] Придется похоже изголяться по другому. Ну уж точно через ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 11:06 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
для цифр Вам надо только Comparator под цифры переписать. У меня он на string написан. Сравнивать не через equal a > или <. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 11:24 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
johanna wrote: > для цифр Вам надо только Comparator под цифры переписать. У меня он на > string написан. > Сравнивать не через equal a > или <. Уточнение: если заворачивать значения в Integer, то см. Integer.compareTo(Object) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 11:34 |
|
||
|
Сортировка по значениям в TreeMap?
|
|||
|---|---|---|---|
|
#18+
Где ж вы раньше были? Уже до самого дошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 12:45 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33191127&tid=2151834]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 319ms |

| 0 / 0 |
