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

相关推荐
十二18 小时前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
D e re k ZH20 小时前
C++ 从零入门(一):基础语法与程序结构
数据结构·c++·算法
careathers1 天前
【数据结构】基于比较的排序算法 - 交换排序
数据结构·算法·排序算法
H.莓飛1 天前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
老师我太想进步了20262 天前
【数据结构-4】算法美学之顺序表
数据结构·算法
GrowingIO技术社区2 天前
CDP、行为分析、归因与营销自动化有什么区别?
数据结构·数据挖掘·数据分析
GrowingIO技术社区2 天前
实时标签怎样验收?从数据更新到分群可用
数据结构·数据挖掘·数据分析
Nuanyt3 天前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
老师我太想进步了20263 天前
【数据结构-3】算法美学之降复杂度
数据结构·算法
w_zero_one4 天前
算法--构造
java·数据结构·算法