福田新闻网

面试题:你是如何选择顺序存储数据结构的?

作者:Tarun Telang

本文为Java开发人员提供了选择适当的顺序数据结构的指导。

ArrayList和LinkedList是Java Collections框架中的两个类,用于存储对象引用列表。 ArrayList和LinkedList都实现了List接口。首先,我们来看看他们最重要的父接口List。

# 1、List 接口

列表是有序的元素集合,也称为序列。它提供基于元素的基于位置的操作,可帮助您快速访问,添加和删除列表中特定索引位置的元素。 List接口将Collection和Iterable实现为父接口。它允许存储重复值和空值,并支持通过索引访问元素。

# 2、具体用法

下面是一个使用List接口声明ArrayList和LinkedList的片段。

# 5、提示

考虑下面遍历LinkedList的示例代码。遍历此代码可能非常慢,因为LinkedList不支持随机访问,因此每次迭代都会产生巨大的开销。

LinkedList ll=new LinkedList(); Object o=null; for(int i=0; i< list.size(); i ++){o=list.get(i);}

提高性能的更好方法,如下面的代码。

LinkedList ll=new LinkedList(); Object o=null; ListIterator li=list.listIterator(0); while(li.hasNext()){o=ll.next();}

# 6、总结

相比之下,ArrayList更快更好,因为它支持对其元素的随机访问。遍历链表或在中间插入新元素是很昂贵的,因为必须遍历每个元素并且可能遇到缓存故障。如果需要在一次迭代中对列表中的多个项执行处理,则LinkedList的开销小于使用ArrayList时多次复制数组元素的开销。

欢迎分享您对此主题的经验和见解,请在文章的评论部分中提出您的想法。

盛峰平台