搜索和排序时使用的集合

时间:2011-07-21 16:30:42

标签: java search sorting collections

有很多关于在stackoverflow上搜索Collection的帖子。此处还有很多关于对Collection进行排序的帖子。我正在寻找一个处理两者的解决方案(数据结构)。地图非常适合搜索(即map.containsKey(key),map.get(key))。 ArrayLists非常适合排序(使用简单的Comparator)。 我的程序将元素添加到HashMap(使用.containsKey(key)检查dupes)。然后将地图值分配给Arraylist。这很简单(一行代码),但非常低效。它使用两倍的内存。

该程序需要独特的元素,但重复的元素呢?我已经扫描了Javadocs,看到有很多Collection类型可以满足你需要的任何风格(map,list,table,set,tree,vector,priorityqueue-无论是什么)。是否有一个Java Collection来处理搜索和排序,包括重复元素?

2 个答案:

答案 0 :(得分:2)

您考虑过TreeMap吗?

  

地图根据其键的自然顺序排序,或者根据地图创建时提供的Comparator进行排序,具体取决于使用的构造函数。

答案 1 :(得分:2)

你试过TreeMap吗?它们非常适合搜索(O(ln n))并且将围绕比较器排序,您可以使用.values()方法。