【发布时间】:2013-11-21 20:37:45
【问题描述】:
我有一个 HashMap 定义如下
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
然后,我将来自数据库的数据存储在此哈希图中,并在控制台上显示如下内容,其中 ---> 左侧的条目是 ID,右侧的条目是此 ID 使用的标签
165767--->[dual-boot, windows, uninstall, ati, graphics, multiple-monitors]
6873 --->[kubuntu, re-installation]
34228--->[11.10, unity, launcher, libreoffice, icons]
我想根据他们使用的标签数量对 ID 进行降序排序,即基于 map.get(key).size() 以便输出应该是 ID 165767然后是 34228,然后是 6873,依此类推。
我尝试使用 TreeMap 进行操作,但我无法根据大小而不是 key 的值以及降序来确定如何操作。
【问题讨论】:
-
Sorting hashmap by values 的可能副本。另外,您将需要一个比较器来根据列表的长度比较列表。
-
可以先建图再排序吗?
-
或者......如何获取已经从数据库中排序的数据,您可以简单地将其转换为 HashMap?您应该能够使用 SQL 来做到这一点。
-
@scottb,我不认为这是可取的,即使是这样,也只有在
LinkedHashMap时才有效,因为HashMap不维持秩序。 -
@scottb,由于无法对数据库中存在的数据格式进行排序,因此无法从数据库中提取排序数据。数据库,然后使用 HashMap。
标签: java sorting arraylist hashmap