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的区别

相关推荐
jiushiapwojdap10 小时前
LU分解法求解线性方程组Matlab实现
数据结构·其他·算法·matlab
纽扣66711 小时前
【算法进阶之路】链表进阶:删除、合并、回文与排序全解析
数据结构·算法·链表
xvhao201313 小时前
单源、多源最短路
数据结构·c++·算法·深度优先·动态规划·图论·图搜索算法
m0_6294947315 小时前
LeetCode 热题 100-----17.缺失的第一个正数
数据结构·算法·leetcode
hnjzsyjyj16 小时前
洛谷 P1443:马的遍历 ← BFS
数据结构·bfs
做时间的朋友。16 小时前
精准核酸检测
java·数据结构·算法
如君愿17 小时前
考研复习 Day28 | 习题--计算机网络第四章(网络层 中)、数据结构(树与二叉树 下)
数据结构·计算机网络·考研·课后习题·记录考研
江南十四行17 小时前
排序算法进阶:直接插入排序(简单排序)与希尔排序
数据结构·算法·排序算法
洛水水17 小时前
【Redis入门】一篇详解Redis五大数据结构
数据结构·数据库·redis
CoderCodingNo17 小时前
【CSP】CSP-J 2021真题 | 插入排序 luogu-P7910 (适合GESP四-六级及以上考生练习)
数据结构·算法·排序算法