gpt4 book ai didi

java - 使用自定义比较器时使用 TreeSet 还是 ArrayList 更好

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:16 25 4
gpt4 key购买 nike

我已经实现了一个图表。我想根据顶点的度数对给定的顶点子集进行排序。因此,我编写了一个名为 DegreeComparator 的自定义比较器。

private class DegreeComparator implements Comparator<Integer>
{
@Override
public int compare(Integer arg0, Integer arg1)
{
if(adj[arg1].size() == adj[arg0].size()) return arg1 - arg0;
else return adj[arg1].size() - adj[arg0].size());
}

}

那么,下面哪一个更有效?

使用TreeSet

public Collection<Integer> sort(Collection<Integer> unsorted)
{
Set<Integer> sorted = new TreeSet<Integer>(new DegreeComparator());
sorted.addAll(unsorted);
return sorted;
}

使用ArrayList

Collections.sort(unsorted, new DegreeComparator());

请注意,第二种方法不是函数,而是单行代码。

凭直觉,我宁愿选择第二个。但我不确定它是否更有效率。

最佳答案

enter image description hereJava API 包含大量的 Collection 和 Map 实现,因此可能会混淆使用哪一个。这是一个快速流程图,可能有助于从最常见的实现中进行选择

关于java - 使用自定义比较器时使用 TreeSet 还是 ArrayList 更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24371204/

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