当前位置: 首页 > 知识库问答 >
问题:

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

夔光霁
2023-03-14

标题说明了一切。我必须在一个列表中添加几千个对象,然后对它们进行排序。现在,我认为(因为向LinkedList添加内容要快得多)我应该使用LinkedList进行创建,然后像下面这样创建一个新的ArrayList:

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

共有1个答案

邹杰
2023-03-14

这与两个问题有关:
1。ArrayListLinkedList之间有什么区别,哪一个插入更快?
2。哪一个排序更快?

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

对于问题2,您可以在这里找到答案ArrayList更适合排序。

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

 类似资料:
  • 本文向大家介绍Java 中将 ArrayList 转换为 LinkedList 的程序,包括了Java 中将 ArrayList 转换为 LinkedList 的程序的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的ArrayList- 现在,使用toCollection()将此ArrayList转换为LinkedList- 示例 以下是在Java中将ArrayList转换为LinkedL

  • I一种方法,它获取一个数字列表(例如,ArrayList),并将其转换为一个排序集(例如,TreeSet),然后返回它。我写了代码,但我有一些问题。 我的问题主要是:

  • 问题内容: 我有一个列表需要自定义排序,然后转换为其ID与名称映射的映射。 这是我的代码: 我认为这可以完成工作,但是我想知道是否可以避免在此处创建并使用精美的函数式编程来一次完成工作。 问题答案: 为此,您有: 如果要强制实例化Map实现,请使用以下命令:

  • 请考虑以下代码: 其中Pair是自定义定义的数据结构。 上述程序的输出:Creating ArrayList:Time Elapsed=0.885秒 创建链接列表:已用时间 = 9.617 秒 排序数组列表:所用时间=0.128秒 对链接列表进行排序:已用时间 = 0.351 秒 我有点困惑,因为直觉上,LinkedList的创建应该比ArrayList更好。 对于排序,这是意料之中的,正如它在a

  • 我有一个ArrayList ,希望将其转换为int[][]。结果数组中的每个条目都有相同的int[],尽管它们是不同的(是的,我已经检查过了!)。我是不是错过了一些简单的东西?int[][]中数组的长度由arr.length给出 编辑:我已经意识到代码可以正常工作,所以这里有一个更大的代码示例,出现问题的地方。permute()照它说的做,并在新的置换完成时,置换给定数组中的整数,返回true。

  • 问题内容: 我想将ArrayList保存到SharedPreferences,因此需要将其转换为字符串然后返回,这就是我正在做的事情: 我可以用它来检索它,但我不知道如何将arrayString转换回ArrayList。如何做呢? 我的数组看起来像: 问题答案: 您有2个选择: 手动解析字符串并重新创建arraylist。这将是非常乏味的。 使用Google的Gson库之类的JSON库,以JSON