【发布时间】:2012-05-14 13:46:46
【问题描述】:
假设一个应用程序产生许多HashMap<String, MyClass> 数据结构,每个数据结构包含几十到几百个Comparable 类型为MyClass 的对象,这些对象最终需要在一个单独且排序的Collection 中结束。
此功能的两种可能实现返回一个 SortedSet 或一个排序列表,如下所示:
public static Set<MyClass> getSortedSet(HashMap<String, MyClass>... allMaps)
{
SortedSet<MyClass> set = new TreeSet<MyClass>();
Collection<MyClass> c;
for (HashMap<String, MyClass> map:allMaps)
{
c = map.values();
set.addAll(c);
}
return set;
}
public static List<MyClass> getSortedList(HashMap<String, MyClass>... allMaps)
{
List<MyClass> list = new ArrayList<MyClass>();
Collection<MyClass> c;
for (HashMap<String, MyClass> map:allMaps)
{
c = map.values();
list.addAll(c);
}
Collections.sort(list);
return list;
}
上述两种方法是否有明显的性能优势?
是否有更快的方法来实现相同的功能?
【问题讨论】:
-
如果您想知道哪个更快,为什么不根据您的实际数据来衡量它们?
-
因为其他人将使用该代码!我要问的是,一种实现或另一种实现速度是否有深刻的原因!
-
您仍然可以随时进行负载测试以了解更好的性能...
标签: java list sorting collections sortedset