LinkedList与链表

1.链表的产生

由于顺序表ArrayList在有些操作时效率较低,如在任意位置插入或者删除一个元素,需要将该位置后面的所有元素进行前移或者后移,时间复杂度为O(n),效率比较低,所以ArrayList不适合做频繁任意位置插入的场景,此外,还有扩容机制导致的内存使用效率较低,因此,Java集合又引入了链表结构(LinkedList)。

2.链表的构造

链表是一种在物理存储结构上非连续的,数据元素的逻辑顺序是通过链表的引用链接次序实现的。

链表分为单项或双向,带头或不带头,循环或非循环,主要学习无头单向非循环链表和无头双向非循环链表

3.LinkedList的使用

3.1LinkedList的构造

3.2LinkedList常用方法

java 复制代码
  LinkedList<Integer> list1=new LinkedList<>();
        list1.add(60);
        list1.add(70);
        list1.add(80);
        list1.add(60);
        LinkedList<Integer> list=new LinkedList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);//[1, 2, 3, 4]
        list.add(0,0);//[0,1, 2, 3, 4]
        list.addAll(list1);//[0, 1, 2, 3, 4, 60, 70, 80, 60]
        list.remove(4);//[0, 1, 2, 3, 60, 70, 80, 60]
        list.get(0);//0
        list.set(0,1000);//[1000, 1, 2, 3, 60, 70, 80, 60]
        list.contains(10000);//true
        list.indexOf(60);//4
        list.lastIndexOf(60);//7
        list.subList(5,7);//[70,80]

3.3LinkedList的遍历

java 复制代码
 LinkedList<Integer> list1=new LinkedList<>();
        list1.add(60);
        list1.add(70);
        list1.add(80);
        list1.add(90);
        //for循环
        for (int i = 0; i < list1.size(); i++) {
            System.out.print(list1.get(i)+" ");
        }
        System.out.println();
        //foreach循环
        for (int x:list1) {
            System.out.print(x+" ");
        }
        System.out.println();
        //迭代器打印
        Iterator<Integer> integer=list1.iterator();
        while(integer.hasNext()){
            Integer i=integer.next();
            System.out.print(i+" ");
        }

4.ArrayList和LInkedLIst的区别

相关推荐
AI科技星1 天前
光速飞行器动力学方程的第一性原理推导、验证与范式革命
数据结构·人工智能·线性代数·算法·机器学习·概率论
余瑜鱼鱼鱼1 天前
Java数据结构:从入门到精通(十)
数据结构
好奇龙猫1 天前
【大学院-筆記試験練習:线性代数和数据结构(5)】
数据结构·线性代数
爱吃生蚝的于勒1 天前
【Linux】进程间通信之匿名管道
linux·运维·服务器·c语言·数据结构·c++·vim
寻星探路1 天前
【算法专题】哈希表:从“两数之和”到“最长连续序列”的深度解析
java·数据结构·人工智能·python·算法·ai·散列表
!停1 天前
C语言单链表
c语言·数据结构·算法
!停1 天前
C语言栈和队列的实现
开发语言·数据结构
蓝桉~MLGT1 天前
中级软考(软件工程师)第三章知识点——数据结构与数据运算
数据结构
代码游侠1 天前
学习笔记——ESP8266 WiFi模块
服务器·c语言·开发语言·数据结构·算法