java的链表(LinkedList类)
文章目录
- java的链表(LinkedList)
- LinkedList类的增删改查
- LinkList类的增加(add、addFirst、addLast)
- LinkedList类的删除(removeFirst、removeLast)
- ArrayList类的查找(getFirst、getLast、迭代查询)
- LinkedList的常用方法
- 对ArrayList和LinkedList的选择
java的链表(LinkedList)
Java的LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。
与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低。
引用:
import java.util.LinkedList;
初始化:
LinkedList<E> list = new LinkedList<E>(); // 普通创建方法
//或者
LinkedList<E> list = new LinkedList(Collection<? extends E> c); // 使用集合创建链表
LinkedList类的增删改查
LinkList类的增加(add、addFirst、addLast)
// 引入 LinkedList 类
import java.util.LinkedList;public class LinkedListTest {public static void main(String[] args) {LinkedList<String> animals = new LinkedList<String>();//普通添加animals.add("cow");animals.add("tiger");animals.add("rabbit");System.out.println("使用add添加动物后:"+animals);// 使用 addFirst() 在头部添加元素animals.addFirst("mouse");System.out.println("使用addFirst添加动物后"+animals);animals.addLast("dragon");System.out.println("使用addLast添加动物后"+animals);}
}
运行结果如下:
LinkedList类的删除(removeFirst、removeLast)
import java.util.LinkedList;public class LinkedListTest {public static void main(String[] args) {LinkedList<String> animals = new LinkedList<String>();//普通添加animals.add("cow");animals.add("tiger");animals.add("rabbit");System.out.println("使用add添加动物后:"+animals);// 使用 addFirst() 在头部添加元素animals.addFirst("mouse");System.out.println("使用addFirst添加动物后"+animals);animals.addLast("dragon");System.out.println("使用addLast添加动物后"+animals);//删除animals.removeFirst();System.out.println("使用removeFirst删除动物后"+animals);animals.removeLast();System.out.println("使用removeLast删除动物后"+animals);}
}
执行结果如下:
ArrayList类的查找(getFirst、getLast、迭代查询)
import java.util.LinkedList;public class LinkedListTest {public static void main(String[] args) {LinkedList<String> animals = new LinkedList<String>();//普通添加animals.add("cow");animals.add("tiger");animals.add("rabbit");System.out.println("使用add添加动物后:"+animals);// 使用 addFirst() 在头部添加元素animals.addFirst("mouse");System.out.println("使用addFirst添加动物后"+animals);animals.addLast("dragon");System.out.println("使用addLast添加动物后"+animals);animals.removeFirst();//删除System.out.println("使用removeFirst删除动物后"+animals);animals.removeLast();System.out.println("使用removeLast删除动物后"+animals);//查找System.out.println("使用getFirst获取到的动物是:"+animals.getFirst());System.out.println("使用getLast获取到的动物是:"+animals.getLast());}
}
执行结果:
或者我们使用迭代的方法,查询链表的所有信息,代码如下:
import java.util.LinkedList;public class LinkedListTest {public static void main(String[] args) {LinkedList<String> animals = new LinkedList<String>();//普通添加animals.add("cow");animals.add("tiger");animals.add("rabbit");System.out.println("使用add添加动物后:"+animals);// 使用 addFirst() 在头部添加元素animals.addFirst("mouse");System.out.println("使用addFirst添加动物后"+animals);animals.addLast("dragon");System.out.println("使用addLast添加动物后"+animals);animals.removeFirst();//删除System.out.println("使用removeFirst删除动物后"+animals);animals.removeLast();System.out.println("使用removeLast删除动物后"+animals);//查找System.out.print("使用迭代获取到的动物是:");for(int i = 0; i < animals.size(); i++){System.out.print(animals.get(i)+" ");}
// System.out.println("使用getFirst获取到的动物是:"+animals.getFirst());
// System.out.println("使用getLast获取到的动物是:"+animals.getLast());}
}
执行结果如下:
或者用for-each的方式迭代也行,运行结果跟上面一样:
import java.util.LinkedList;public class LinkedListTest {public static void main(String[] args) {LinkedList<String> animals = new LinkedList<String>();//普通添加animals.add("cow");animals.add("tiger");animals.add("rabbit");System.out.println("使用add添加动物后:"+animals);// 使用 addFirst() 在头部添加元素animals.addFirst("mouse");System.out.println("使用addFirst添加动物后"+animals);animals.addLast("dragon");System.out.println("使用addLast添加动物后"+animals);animals.removeFirst();//删除System.out.println("使用removeFirst删除动物后"+animals);animals.removeLast();System.out.println("使用removeLast删除动物后"+animals);//查找System.out.print("使用迭代获取到的动物是:");for(String animal : animals){System.out.print(animal+" ");}
// for(int i = 0; i < animals.size(); i++){// System.out.print(animals.get(i)+" ");
// }
// System.out.println("使用getFirst获取到的动物是:"+animals.getFirst());
// System.out.println("使用getLast获取到的动物是:"+animals.getLast());}
}
LinkedList的常用方法
图片来源于菜鸟教程
对ArrayList和LinkedList的选择
以下情况使用 ArrayList :
- 频繁访问列表中的某一个元素。
- 只需要在列表末尾进行添加和删除元素操作。
以下情况使用 LinkedList :
- 你需要通过循环迭代来访问列表中的某些元素。
- 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
java的链表(LinkedList类)相关推荐
- java集合框架LinkedList类的方法理解
java提供的LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口 ...
- Java中的LinkedList
介绍: LinkedList是由节点组成的线性数据结构. 在单链列表中,每个节点包含数据和引用. 在此,参考部分引用链表中的下一个节点. 另一方面,在双链表中,我们具有指向上一个和下一个节点的数据和引 ...
- JDK1.8源码(六)——java.util.LinkedList 类
上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个由链表 ...
- java链表的数据结构_Java数据结构 获取链表(LinkedList)的第一个和最后一个元素
Java数据结构 获取链表(LinkedList)的第一个和最后一个元素 以下实例演示了如何使用 LinkedList 类的 linkedlistname.getFirst() 和 linkedlis ...
- 14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
本篇主要是集合框架基础和List集合,Map集合等等后续更 集合 14.1 集合框架 14.1.1 概念 14.1.2 集合架构 14.2 Collection接口 14.2.1 常用方法 14.3 ...
- java中的LinkedList(链表)与ArrayList(动态数组):(1)简单辨析
一.数组的缺点(为什么需要引入JAVA集合): 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合. 首先数组可以存放基本数据类型和对象, ...
- Java链表—— LinkedList
ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低. 链表LinkedList和动态数组ArrayList 以下情况使用 ArrayList : 频 ...
- java中LinkedList类的操作
LinkedList类是双向链表,单向队列,双向队列,栈的实现类: LinkedList类实现单向队列和双向队列的接口,自身提高了栈操作的方法,链表操作的方法. 在LinkedList类中存在很多方法 ...
- Java基础篇之LinkedList类
LinkedList类扩展AbstractSequentialList并执行List接口.它提供了一个链接列表数据结构.它具有如下的两个构造函数,说明如下: LinkedList( ) LinkedL ...
- JAVA(四)类集/枚举
成鹏致远 | lcw.cnblog.com |2014-02-04 JAVA类集 1.认识类集 类集的作用 类集实际上就是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充 类集的 ...
最新文章
- eplan怎么插入表格_EPLAN电气图实例控制柜(控制面板)
- 临河智慧城管:让城市更和谐
- vim 打开中文乱码
- 信息安全系统设计基础第九周总结
- 串口通信模块4:串口操作自定义类(1)
- 【Vegas原创】终端服务器超出了最大允许连接数 解决方法
- edge浏览器设置默认浏览器
- 开启进度比的文本为什么没有显示_没有开通智钻,为什么会显示流量是在智钻进店的呢?...
- ManualResetEvent使用说明
- C++ gbk与utf8互转
- 为什么员工 996 多猝死,而企业家 996 甚至 9127 却很少听到有猝死的?答案原来是.....
- 网络安全——WEP实现无线局域网安全
- 苹果iphone手机哪些机型支持刷公交卡
- 无法使用以下不同的参数继承com.baomidou.mybatisplus.extension.service.IService: <> 和 <com.itheima.rijidao.en
- Python同步学习(一)
- 总结十二:管理经验法则和名言
- 人民日报评直播问答:百舸争流背后同质化弊病已显现
- MySQL事务的四种隔离界别以及会造成的问题和解决办法
- ScalaNote24-模式匹配和高阶函数练习题
- Win7如何禁用安全模式 如何禁止进入安全模式?
热门文章
- WINDOWS2003五种备份模式详解
- 【收益管理】单资源容量控制(2)先从报童模型谈起!
- java itext read a pdf file_java - 使用iText7读取PDF时遇到的问题(使用iText5) - 堆栈内存溢出...
- matlab正反馈系统根轨迹,正反馈回路和非最小相位系统根轨迹
- flv 文件格式详解
- Oracle怎样导出应收开票,【Oracle|Oracle财务系统应收账款模块操作手册】
- 苹果6严重卡顿_苹果手机变慢变卡,怎么破?
- 一文掌握Java基础知识点(思维导图)
- 10w单词库(含释义)(包含sql,csv)
- 为啥春节抢红包总不是运气王?看完微信抢红包算法你就明白了