gpt4 book ai didi

Java:创建 LinkedList 并将其转换为 ArrayList 进行排序是否有意义?

转载 作者:行者123 更新时间:2023-12-01 14:16:53 26 4
gpt4 key购买 nike

标题说明了一切。我必须将数千个对象添加到列表中,然后对它们进行排序。现在我想(因为向 LinkedList 添加东西要快得多)我会使用 LinkedList 来创建,然后像这样创建一个新的 ArrayList:

LinkedList<Foo> createList = new LinkedList<Foo>();
// add stuff
ArrayList<Foo> returnList = new ArrayList<Foo>(createList);
Collections.sort(returnList);
return returnList;

我的问题是:
这种方法真的比直接将对象添加到 ArrayList 更快甚至更慢吗?
或者,我知道要添加的对象的粗略数量。具有初始容量的 ArrayList 是否更快?

最佳答案

这与两个问题有关:
1. ArrayList有什么区别和 LinkedList ,哪个插入速度更快?
2. 哪个排序更快?

对于问题1,ArrayList的本质区别和 LinkedList是数据结构。 ArrayList在内部使用数组并且擅长随机访问(O(1))。另一方面,LinkedList擅长删除和插入项目(O(1)。你可以找到更多here
回到问题,因为我们这里不需要按索引插入。
所以ArrayListLinkedList都是 O(1) 操作。但是LinkedList会因为数据结构的原因造成更多的内存,而ArrayList如果需要扩展容量会导致更多时间(设置足够大的初始容量将有助于加快插入速度)。

对于问题 2,您可以找到答案 hereArrayList更适合排序。

总之,我认为你应该坚持使用ArrayList,不需要导入LinkedList这里。

关于Java:创建 LinkedList 并将其转换为 ArrayList 进行排序是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62227775/

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