Java中的ArrayList和LinkedList

作为List下面的两个重要实现类,ArrayList和LinkedList在开发中有着不同的应用,其不同点可以大致概括如下:

(1)ArrayList是用线性表(数组)实现的,而LinkedList是用链表来实现的;

(2)在查找和修改方面,ArrayList速度更快,因为ArrayList可以直接访问到数组的下标,而LinkedList需要从头节点依次向后遍历;

(3)在添加和删除方面,LinkedList更有优势,因为ArrayList需要对数组后面的每一个元素进行移动,而LinkedList并不需要移动。

注:在使用集合类的时候不能使用内置类型(如int,char等),而必须要使用引用类型(如Integer,Character等)。

常用方法

ArrayList和LinkedList有几个共同的常用方法:

(1)add(value) :在List尾部添加元素value;

(2)get(index):返回下标为index元素的值;

(3)remove(index):删除下标为index的元素;

(4)set(index, value):将下标为index的元素值设置为value。

代码

下面代码中将List的几个常用方法,以及三种遍历方式展现出来。

List<String> list = new ArrayList<>();
//向list中添加 a b c三个字符串
list.add("a");
list.add("b");
list.add("c");
        
for(int i = 0; i < list.size(); i++)
{
    System.out.println(list.get(i));
}
//输出 a b c
        
list.remove(0);
for(String x: list)
{
    System.out.println(x);
}
//输出 b c
        
list.set(1, "d");   //改变所以1处的值,改为“d”
Iterator<String> iter = list.iterator();    //通过迭代器遍历
while(iter.hasNext())
{
    System.out.println(iter.next());
}
//输出 b d

LinkedList的方法也比较相似,只是不同方法的时间复杂度有些不同。此外,LinkedList还包括一些对头节点和尾节点进行操作的函数。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容