栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JAVA集合IV-LinkedList】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JAVA集合IV-LinkedList】

JAVA集合IV-LinkedList
  • 1.LinkedList底层源码
  • 2.LinkedList底层操作机制
  • 3.LinkedList与ArrayList比较
  • 4.LinkedList部分方法测试

1.LinkedList底层源码

(1)LinkedList类源码(继承、实现)

public class LinkedList
    extends AbstractSequentialList
    implements List, Deque, Cloneable, java.io.Serializable
{

(2)LinkedList类继承和接口图

2.LinkedList底层操作机制

(1)说明

  • LinkedList底层实现了双向链表和双端队列特点
  • 可以添加任意元素(元素可以重复),包括空元素null
  • 线程不安全,没有实现同步

(2)底层操作机制

  1. LinkedList底层维护了一个双向链表
  2. LinkedList中维护了两个属性first和last,分别指向首节点和尾节点
  3. 每个节点(Node对象),里面又维护了一个prev、next、item三个属性,其中通过prev指向前一个,通过next指向后一个节点。最终实现双向链表
  4. 所有LinkedList的元素的添加和删除,不是通过数组完成的,相对来说效率高


上图可以看到,LinkedList链表节点定义。
下图为双向链表的示意图:

3.LinkedList与ArrayList比较

4.LinkedList部分方法测试

(1)LinkedList的增删改查

增加元素方法(双向链表和双端队列特点):

删除元素方法(双向链表和双端队列特点):

修改元素方法(双向链表和双端队列特点):


查询元素方法(双向链表和双端队列特点):

(2)简单代码

在增删改查中,如果使用的是双向链表的操作(增、删、改、查),就按照双向链表的方式进行处理;如果使用的是双端队列的操作(增、删、改、查),就按照双端队列的方式进行处理。(因为LinkedList同时具备双端队列和双向链表的特点)。

package Collection.linkedList;

import java.util.LinkedList;


public class LinkedListTest {

    public static void main(String[] args) {
        LinkedList linkedList = new LinkedList<>();

        linkedList.add(1);
        linkedList.add(2);
        linkedList.add(3);
        System.out.println(linkedList);

        
        //修改set方法
        linkedList.set(1,4);

        //删除方法remove
        linkedList.remove();
        
        
        linkedList.getFirst();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/845283.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号