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

相关推荐
学编程就要猛7 小时前
数据结构初阶:Java中的Stack和Queue
数据结构
是苏浙8 小时前
零基础入门C语言之C语言实现数据结构之顺序表
c语言·开发语言·数据结构
星释8 小时前
Rust 练习册 :Matching Brackets与栈数据结构
数据结构·算法·rust
逐步前行11 小时前
C数据结构--排序算法
c语言·数据结构·排序算法
_dindong12 小时前
笔试强训:Week-4
数据结构·c++·笔记·学习·算法·哈希算法·散列表
陌路2013 小时前
S12 简单排序算法--冒泡 选择 直接插入 希尔排序
数据结构·算法·排序算法
papership14 小时前
【入门级-算法-5、数值处理算法:高精度的乘法】
数据结构·算法
earthzhang202114 小时前
【1039】判断数正负
开发语言·数据结构·c++·算法·青少年编程
谈笑也风生14 小时前
只出现一次的数字 II(一)
数据结构·算法·leetcode
im_AMBER15 小时前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode