LinkedList的简单介绍

java.util.LinkedList 集合数据存储的结构是链表结构。LinkedList是一个双向链表
在实际开发中,对一个集合元素的添加和删除,经常涉及到首尾操作,而LinkedList就提供了大量的首尾操作的方法

LinkedList集合的特点

1、方便元素的添加、删除

2、元素的查询慢

2、里面包括了大量首尾首尾操作的方法

注意:LinkedList集合的方法不能使用多态

为什么说LinkedList集合添加、删除元素方便,查询元素慢

首先,LinkedList集合数据存储的结构是链表结构,

而链表是添加、删除元素方便,查询元素慢的:

查询慢:链表中地址不是连续的每次查询元素都必须从头开始查询

增删快:链表结构增加/删除一个元素对链表的整体结构没有影响,所以增删快

操作集合首尾的方法、是否为空判断方法

public void addFirst(E e):将指定元素插入此列表的开头。
public void addLast(E e):将指定元素添加到此列表的结尾。 public E getFirst():返回此列表的第一个元素。
public E getLast():返回此列表的最后一个元素。 public E removeFirst():移除并返回此列表的第一个元素。
public E removeLast():移除并返回此列表的最后一个元素。 public void push(E e):将元素推入此列表所表示的堆栈。
public E pop():从此列表所表示的堆处弹出一个元素。 public boolean isEmpty():如果列表不包含元素,则返回true

addFirst()和addLast()方法

public class DemoLinkedListAddFirstLast {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
linkedList.add(3, "链表元素3");
linkedList.add(4, "链表元素4");
linkedList.add(5, "链表元素5");
System.out.println(linkedList); // 用addFirst方法向链表集合开头添加一个元素
linkedList.addFirst("开头");
// 用addLast方法向链表集合开头添加一个元素
linkedList.addLast("结尾");
System.out.println(linkedList);
}
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
[开头, 链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5, 结尾]

getFirst()和getLact()方法

import java.util.LinkedList;

public class DemoLinkedListGetFirstLast {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
linkedList.add(3, "链表元素3");
linkedList.add(4, "链表元素4");
linkedList.add(5, "链表元素5");
System.out.println(linkedList); // 获取此列表的第一个元素。
String first = linkedList.getFirst();
// 获取此列表的最后一个元素。
String last = linkedList.getLast();
System.out.println("第一个元素:" + first);
System.out.println("最后一个元素:" + last);
}
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
第一个元素:链表元素0
最后一个元素:链表元素5

removeFirst()和removeLast()方法

import java.util.LinkedList;

public class DemoLinkedListRemoveFirstLast {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
linkedList.add(3, "链表元素3");
linkedList.add(4, "链表元素4");
linkedList.add(5, "链表元素5");
System.out.println(linkedList); // 移除并返回此列表的第一个元素
String first = linkedList.removeFirst();
// 移除并返回此列表的最后一个元素
String last = linkedList.removeLast();
System.out.println("移除的第一个元素:" + first);
System.out.println("移除的最后一个元素:" + last);
System.out.println("此时的集合:" + linkedList);
}
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
移除的第一个元素:链表元素0
移除的最后一个元素:链表元素5
此时的集合:[链表元素1, 链表元素2, 链表元素3, 链表元素4]

push()和pop()方法

说明:push()方法和addFirst()方法功能一样

     pop()方法和removeFirst()方法功能一样

import java.util.LinkedList;

public class DemoLinkedListPushPop {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
System.out.println("原集合:" + linkedList); // 将元素推入此列表所表示的堆栈
linkedList.push("push元素");
System.out.println("push()操作后的集合:" + linkedList); // 从此列表所表示的堆处弹出一个元素
linkedList.pop();
System.out.println("push()操作后的集合:" + linkedList);
}
}
输出结果:
原集合:[链表元素0, 链表元素1, 链表元素2]
push()操作后的集合:[push元素, 链表元素0, 链表元素1, 链表元素2]
push()操作后的集合:[链表元素0, 链表元素1, 链表元素2]

isEmpty()方法

import java.util.LinkedList;

public class DemoLinkedListIsEmpty {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>(); boolean b1 = linkedList.isEmpty();
System.out.println("集合是否为空:" + b1); // 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2"); boolean b2 = linkedList.isEmpty();
System.out.println("集合是否为空:" + b2);
}
}
输出结果:
集合是否为空:true
集合是否为空:false

Java Linked集合的简单介绍和常用方法的使用的更多相关文章

  1. Java泛型使用的简单介绍

    目录 一. 泛型是什么 二. 使用泛型有什么好处 三. 泛型类 四. 泛型接口 五. 泛型方法 六. 限定类型变量 七. 泛型通配符 7.1 上界通配符 7.2 下界通配符 7.3 无限定通配符 八. ...

  2. java反射机制的简单介绍

    参考博客: https://blog.csdn.net/mlc1218559742/article/details/52754310 先给出反射机制中常用的几个方法: Class.forName (& ...

  3. java面试题之简单介绍一下集合框架

    集合框架分为三块:List列表.Set集合.Map映射 List列表在数据结构上可以被看做线性表,常用的有ArrayList和LinkList(不常用的有Vector(类似于ArrayList)),他 ...

  4. Java中NIO的简单介绍

    NIO基本介绍 Java NIO(New IO) 也有人称之为Java non-blocking IO 是从Java1.4版本开始引入的一个新的IO API,可以代替标准的IO API.NIO与原来的 ...

  5. java之集合框架使用细节及常用方法

    集合类的由来:   对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定.  就使用集合容器进行存储. 集合特点: 1,用于存储对象的容器. 2,集合的长度是可变的. 3,集合中不可以存储基本 ...

  6. java中数据流的简单介绍

    java中的I/O操作主要是基于数据流进行操作的,数据流表示了字符或者字节的流动序列. java.io是数据流操作的主要软件包 java.nio是对块传输进行的支持 数据流基本概念 “流是磁盘或其它外 ...

  7. Java ArrayList类的简单介绍

    ArrayList类的说明: ArrayList类是List接口的实现类,java.util.ArrayList集合数据存储的结构是数组结构. 特点: 元素增删慢,查找快.(由于日常开发中使用最多的功 ...

  8. Java 用集合实现简单的斗地主发牌

    创建数组.集合,存放数据 public class FightAgainstLandlords { /** * poker集合,存储54张牌 */ private ArrayList<Strin ...

  9. Java文件I/O简单介绍

    目录 一.File类 1.1 构造方法 1.2 常用方法 1.3 例子 二.基础I/O:字节流.字符流 2.1 字节流 2.1.1 字节输出流 OutputStream 2.1.2 FileOutpu ...

随机推荐

  1. BZOJ 2160: 拉拉队排练(回文树)

    传送门: [1]:BZOJ [2]:洛谷 •题意 求串 s 中出现的所有奇回文串,并按照长度由大到小排序: 输出前 k 个奇回文串的乘积 mod 19930726; 如果奇回文串的个数不足 k 个,输 ...

  2. 在spring security3中使用自定义的MD5和salt进行加密

    首先看代码: <authentication-manager alias="authenticationManager"> <authentication-pro ...

  3. P1009 字符三角形

    题目描述 输入一个字符c,按照阳历输出的格式输出由该字符组成的一个字符三角形. 输入格式 输入包含一个字符c. 输出格式 输出由该字符c组成的字符三角形. 样例输入 A 样例输出 A AAA AAAA ...

  4. linux I/O 内存分配和映射

    I/O 内存区必须在使用前分配. 分配内存区的接口是( 在 <linux/ioport.h> 定义): struct resource *request_mem_region(unsign ...

  5. 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架

    20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...

  6. 关于opencv中cv::Mat设置roi

    opencv中设置roi实验: cv::Mat SrcImg; SrcImg = cv::imread("../resource/cpw3.png"); cv::imshow(&q ...

  7. dotnet core 隐藏控制台

    如果写一个控制台程序,需要隐藏这个控制台程序,可以使用本文的方法 如果是在 Windows 下运行, 可以使用一些系统提供的方法隐藏控制台.如果是 Linux 下,都是控制台,就不用隐藏了 复制下面的 ...

  8. vue-cli 3.0 eslint

    1.关闭eslint module.exports = { configureWebpack: { devtool: 'source-map' }, lintOnSave: false } 2.修改e ...

  9. codeforces 1165F1/F2 二分好题

    Codeforces 1165F1/F2 二分好题 传送门:https://codeforces.com/contest/1165/problem/F2 题意: 有n种物品,你对于第i个物品,你需要买 ...

  10. lnmp一键安装,安装php时失败

    查看安装日志 直接cd进入根目录报错内容:configure: error: mcrypt.h not found. Please reinstall libmcrypt 解决办法如下#使用wget可 ...