当前位置: 代码网 > it编程>游戏开发>ar > ArrayList和LinkedList的区别是什么?哪个查询快增删慢

ArrayList和LinkedList的区别是什么?哪个查询快增删慢

2026年09月04日 ar 我要评论
1.arraylist特点及优缺点arraylist : array数组,list列表,从名称中可看出arraylist是一个基于数组的集合事实上arraylist就是用数组来存储信息arraylis

1.arraylist特点及优缺点

arraylist : array数组,list列表,从名称中可看出arraylist是一个基于数组的集合

事实上arraylist就是用数组来存储信息

arraylist的特点

<1>有序

数组的特点是有序:意思是元素存入集合的顺序和取出的顺序一致

<2>可重复

可重复的意思是它里面可以存储重复的元素

<3>可为null

意思是在里面可以存储null元素

arraylist的优点

<1>查询快

只需要知道索引,马上就可以查出来,arraylist是所有容器中查询最快的一个

arraylist的缺点

<2>增删慢

为什么会增删慢?

因为数组存满了以后要扩容,扩容是先创建一个原来容量1.5倍的数组,然后把之前的元素拷贝到新数组中来,这样一来添加元素的效率就大大降低

创建1.5倍的数组

把之前元素拷贝到新数组中来

再添加数据

小知识点

(1)什么的大小(size)

大小(size)就是指元素的个数

(2)什么是容量(capacity)

容量(capacity)就是数组的长度

arraylist的创建方式

arraylist一共三个构造方法

public class arraylist<e>{

    //通过无参的构造方法来创建,数组默认初始容量是10
    public arraylist()
    //可以指定数组的初始容量
    public arraylist(int initialcapacity)
    // 可以将另一个集合的元素插入到arraylist集合中,数组的初始容量就是插入集合的大小
    public arraylist(collection<? extends e> c)

}

arraylist的常用方法

arraylist作为list的子类,而list又作为collection的子类,arraylist有着collection和list的所有方法

arraylist的常用方法分类

//根据索引获取元素
get(int index)
//根据元素获取对应的索引
indexof(object 0)
//迭代器
iterator()
//添加元素
add(e)
//覆盖指定位置的元素
set(int index,e element)
//删除指定位置的元素
remove(int index)
//清空集合
clear()
//为集合创建流
stream()

arraylist是在开发中用得最频繁的容器

2.linkedlist特点及优缺点

linkedlist: linked链式,list列表,简称链表,顾名思义它是基于链表实现存储数据,并且是双向链表,所有linklist又称双向列表

public class linkedlist<e> {



    private static class node<e>{
        
        //存储数据的地方
        e item;
        
        //后一节点
        node<e> next;

        //前一节点
        node<e> prev;

        node(node<e> prev, e element, node<e> next) {
            this.item = element;
            this.next = next;
            this.prev = prev;

        } 

    }

    //用first属性来记录第一个元素,即头节点
    transient node<e> first;
    
    //用last属性来记录最后一个元素,即尾节点
    transient node<e> last


}

linkedlist的特点

(1)有序

元素存入的数据和取出的数据一致

(2)可重复

在列表里面可以再存储一个相同的元素

(3)可为null

在里面可以存储null元素

linkedlist的优点

(1)增删快

只需记录前后节点即可,不需像arraylist一样,还要调整数组大小

linkedlist的缺点

(1)查询慢

即使知道索引,也需要从头部或者尾部,开始一个接一个的查

linkedlist的常用方法

linkedlist的常用方法分类

arraylist与linkedlist的比较

总结

通过比较,可得出在平常开发中,如果需要频繁的查询数据,则可以用arraylist,而需要频繁的增删,可以使用linkedlist

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com