gpt4 book ai didi

java - SortedSet 或排序集合

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:31:22 26 4
gpt4 key购买 nike

假设一个应用程序产生了一系列 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;
}

上述 2 种方法是否有任何明显的性能优势?

有没有更快的方法来实现相同的功能?

最佳答案

排序列表方法的一些问题:

ArrayLists 由数组支持。每当您添加一个新元素时,它可能必须在幕后增加数组。如果您想使用这种方法,您应该事先创建适当大小的 ArrayList。

添加所有元素后的排序似乎不是最佳的。为什么不将元素添加到列表中的正确位置? (使用排序集合然后变成列表)A good Sorted List for Java

要真正回答您的问题,我会采用在幕后使用 TreeSet 的方法。因为,如果用户愿意,他们总是可以执行 Set.toArray() 然后得到一个列表。

关于java - SortedSet 或排序集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com