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. Django入门2--Django的应用和开发第一个Template

    Django创建应用的命令: 应用的目录: 开发第一个Template:

  2. ThinkPHP 模版中的内置标签

    内置标签就是模版引擎提供的一组可以完成控制.循环和判断功能的类似HTML语法的标签.   一.判断比较:   1.if标签进行条件判断 //if语句的完整格式 <if condition=&qu ...

  3. 【mac】Mac 终端如何切换成管理员用户

    方法1.打开终端输入 sudo su  然后回车 Password:  ------(输入root密码即可) sh-3.2# --------    (输入执行的命令即可,例如 npm i -g np ...

  4. MVC3 学习笔记 之(ajax表单)

    mvc 提供了一种ajax提交表单的方式.与普通表单不同的是,它是一个异步表单. 在开始使用之前,需要引用以下文件: <script src="@Url.Content("~ ...

  5. 【37.74%】【codeforces 725D】Contest Balloons

    time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. 爬虫工程师的unidbg入门教程

    现在很多的app使用了so加密,以后会越来越多.爬虫工程师可能会直接逆向app,看java代码,完成java层的算法破解,但是如果遇到so该怎么办呢?可能你会直接破解so,但是真的会有很多爬虫工程师会 ...

  7. nginx负载均衡的几种模式

    nginx 的 upstream目前支持 4 种方式的分配 ).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. ).weight 指定轮询几率,we ...

  8. mybatis的核心配置文件

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC &q ...

  9. slim中的请求头

    请求头 每个 HTTP 请求都有请求头.这些元数据描述了 HTTP 请求,但在请求体中不可见.Slim 的 PSR 7 请求对象提供了几个检查请求头的方法. 获取所有的请求头,返回一个数组:getHe ...

  10. WWDC2018 之 优化 App Assets Optimizing App Assets

    该篇博客记录了观看WWDC Session227<Optimizing App Assets>的内容以及一些理解. 引言 该session主要讲述了使用Assets Catalog的新特性 ...