Java Linked集合的简单介绍和常用方法的使用
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集合的简单介绍和常用方法的使用的更多相关文章
- Java泛型使用的简单介绍
目录 一. 泛型是什么 二. 使用泛型有什么好处 三. 泛型类 四. 泛型接口 五. 泛型方法 六. 限定类型变量 七. 泛型通配符 7.1 上界通配符 7.2 下界通配符 7.3 无限定通配符 八. ...
- java反射机制的简单介绍
参考博客: https://blog.csdn.net/mlc1218559742/article/details/52754310 先给出反射机制中常用的几个方法: Class.forName (& ...
- java面试题之简单介绍一下集合框架
集合框架分为三块:List列表.Set集合.Map映射 List列表在数据结构上可以被看做线性表,常用的有ArrayList和LinkList(不常用的有Vector(类似于ArrayList)),他 ...
- Java中NIO的简单介绍
NIO基本介绍 Java NIO(New IO) 也有人称之为Java non-blocking IO 是从Java1.4版本开始引入的一个新的IO API,可以代替标准的IO API.NIO与原来的 ...
- java之集合框架使用细节及常用方法
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定. 就使用集合容器进行存储. 集合特点: 1,用于存储对象的容器. 2,集合的长度是可变的. 3,集合中不可以存储基本 ...
- java中数据流的简单介绍
java中的I/O操作主要是基于数据流进行操作的,数据流表示了字符或者字节的流动序列. java.io是数据流操作的主要软件包 java.nio是对块传输进行的支持 数据流基本概念 “流是磁盘或其它外 ...
- Java ArrayList类的简单介绍
ArrayList类的说明: ArrayList类是List接口的实现类,java.util.ArrayList集合数据存储的结构是数组结构. 特点: 元素增删慢,查找快.(由于日常开发中使用最多的功 ...
- Java 用集合实现简单的斗地主发牌
创建数组.集合,存放数据 public class FightAgainstLandlords { /** * poker集合,存储54张牌 */ private ArrayList<Strin ...
- Java文件I/O简单介绍
目录 一.File类 1.1 构造方法 1.2 常用方法 1.3 例子 二.基础I/O:字节流.字符流 2.1 字节流 2.1.1 字节输出流 OutputStream 2.1.2 FileOutpu ...
随机推荐
- BZOJ 2160: 拉拉队排练(回文树)
传送门: [1]:BZOJ [2]:洛谷 •题意 求串 s 中出现的所有奇回文串,并按照长度由大到小排序: 输出前 k 个奇回文串的乘积 mod 19930726; 如果奇回文串的个数不足 k 个,输 ...
- 在spring security3中使用自定义的MD5和salt进行加密
首先看代码: <authentication-manager alias="authenticationManager"> <authentication-pro ...
- P1009 字符三角形
题目描述 输入一个字符c,按照阳历输出的格式输出由该字符组成的一个字符三角形. 输入格式 输入包含一个字符c. 输出格式 输出由该字符c组成的字符三角形. 样例输入 A 样例输出 A AAA AAAA ...
- linux I/O 内存分配和映射
I/O 内存区必须在使用前分配. 分配内存区的接口是( 在 <linux/ioport.h> 定义): struct resource *request_mem_region(unsign ...
- 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架
20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...
- 关于opencv中cv::Mat设置roi
opencv中设置roi实验: cv::Mat SrcImg; SrcImg = cv::imread("../resource/cpw3.png"); cv::imshow(&q ...
- dotnet core 隐藏控制台
如果写一个控制台程序,需要隐藏这个控制台程序,可以使用本文的方法 如果是在 Windows 下运行, 可以使用一些系统提供的方法隐藏控制台.如果是 Linux 下,都是控制台,就不用隐藏了 复制下面的 ...
- vue-cli 3.0 eslint
1.关闭eslint module.exports = { configureWebpack: { devtool: 'source-map' }, lintOnSave: false } 2.修改e ...
- codeforces 1165F1/F2 二分好题
Codeforces 1165F1/F2 二分好题 传送门:https://codeforces.com/contest/1165/problem/F2 题意: 有n种物品,你对于第i个物品,你需要买 ...
- lnmp一键安装,安装php时失败
查看安装日志 直接cd进入根目录报错内容:configure: error: mcrypt.h not found. Please reinstall libmcrypt 解决办法如下#使用wget可 ...