java基础30 List集合下的LinkedList集合
单例集合体系:
---------| collection 单例集合的根接口
--------------| List 如果实现了list接口的集合类,具备的特点:有序,可重复 注:集合中的有序不是指自然顺序,而是指添加进去的顺序与出来的顺序是一致的
------------------| ArrayList ArrayList底层维护了一个object数组的实现的。(线程不安全),特点:查询速度快,增删速度慢。(有序,可重复)
------------------| LinkedList LinkedList底层是使用链表结构实现的,线程不安全,特点:查询速度慢,增删速度快。(有序,可重复)
------------------| Vector(了解即可) 底层也是维护一个Object数组的实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低
--------------| Set 如果实现了set接口的集合类,具备的特点:无序,不可重复 注:集合中的无序不是指自然顺序,而是指添加元素进去的顺序与元素出来的顺序是不一致的
------------------| HashSet 底层是用于一个哈希表支持的。线程不安全,特点:存储速度块
------------------| TreeSet 底层是使用红黑树(二叉树)数据结构实现的,线程不同步(即线程不安全),不能在多线程中共享,但可以使用synchroinzedMap()方法来实现同步。特点:会对元素进行排序存储(按自然顺序)
双例集合体系:
----------| Map 双例集合的根接口。如果是实现了Map接口的集合类,具备的特点:存储的数据都是以键值对形式存在的,键不可重复,值可以重复
--------------| HashMap 底层是基于哈希表实现的,HashMap允许键和值为null,线程不安全,特点:存储速度块
--------------| TreeMap 基于红黑数(二叉树)数据结构实现的,线程不同步(即线程不安全),特点:会对元素经行排序存储
--------------| HashTable(了解即可) 线程安全
1、LinkedList 集合简介
1.1、LinkedList 是一个继承于AbstractSequentialList 的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
1.2、LinkedList 实现 List 接口,能进行队列操作。
1.3、LinkedList 实现 Deque 接口,即能将 LinkedList 当作双端队列使用。
1.4、ArrayList底层是由数组支持,而LinkedList 是由双向链表实现的,其中的每个对象包含数据的同时还包含指向链表中前一个与后一个元素的引用。
2、LinkedList 集合常用特有方法
2.1、方法介绍
addFirst(E e):把元素添加到集合的首位置
addLast(E e) :把元素添加到集合的末尾处
getFirst() :获取集合中的首位元素
getLast() :获取集合中的末尾元素
removeFirst():删除集合中的首位元素并返回删除的元素
removeLast():删除集合中的末尾元素并返回删除的元素
2.2、数据结构
2.2.1、栈(jdk1.6):主要用于堆栈的数据结构的存储方式 。 堆栈数据结构存储的特点:先进后出,后进先出
push(E e) :将指定的元素插入指定集合的开头处
pop() :移除集合中的第一个元素,并返回移除的元素
2.2.2、队列(双端列队的,jdk1.5):主要为了让我们可以使用LinkedList模拟列队数据结构存储方式。 队列数据结构存储的特点:先进先出,后进后出
offer(E e) :将指定元素插入到集合中的末尾处
poll() :
2.2.3、返回逆序的迭代器对象
descendingIterator():LinkedList 集合的特有迭代器
3、实例
package com.dhb.collection; import java.util.Iterator;
import java.util.LinkedList; /**
* @author DSHORE / 2018-5-17
*
*/
public class Demo9 {
public static void main(String[] args) {
LinkedList<String> list=new LinkedList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(,"二狗子");
System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五] list.addFirst("狗娃");//把元素添加到集合的首位置
list.addLast("狗剩");//把元素添加到集合的末尾处
System.out.println(list);//返回值:[狗娃, 张三, 李四, 二狗子, 王五, 狗剩] System.out.println("获取集合中的首位元素:"+list.getFirst());//返回值:狗娃
System.out.println("获取集合中的末尾元素:"+list.getLast());//返回值:狗剩 System.out.println("删除集合中的首位元素并返回删除的元素:"+list.removeFirst());//返回值:狗娃
System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五, 狗剩]
System.out.println("删除集合中的末尾元素并返回删除的元素:"+list.removeLast());//返回值:狗剩
System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五] System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五]
list.push("三狗子");//将指定的元素插入指定集合的开头处
System.out.println(list);//返回值:[三狗子, 张三, 李四, 二狗子, 王五]
System.out.println("移除并返指定回集合中的第一个元素的元素:"+list.pop());//返回值:三狗子
System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五] list.offer("狗王子");//将指定元素插入到集合中的末尾处
System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五, 狗王子]
System.out.println("删除并返回指定集合中的第一个元素:"+list.poll());//返回值:张三
System.out.println(list);//返回值:[李四, 二狗子, 王五, 狗王子] Iterator<String> it=list.descendingIterator();//获取迭代器
while(it.hasNext()){//遍历集合的元素
System.out.print(it.next()+",");//返回值:李四, 二狗子, 王五, 狗王子,
}
}
}
|
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:http://www.cnblogs.com/dshore123/p/9051776.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
java基础30 List集合下的LinkedList集合的更多相关文章
- java基础解析系列(十)---ArrayList和LinkedList源码及使用分析
java基础解析系列(十)---ArrayList和LinkedList源码及使用分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder jav ...
- Java基础学习(四)-- 接口、集合框架、Collection、泛型详解
接口 一.接口的基本概念 关键字为:Interface,在JAVA编程语言中是一个抽象类型,是抽象方法的集合.也是使用.java文件编写. 二.接口声明 命名规范:与类名的命名规范相同,通常情况下 ...
- java基础30问
Java基础知识30问 1. 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用 ...
- Java基础语法(自定义类、ArrayList集合)
Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...
- Java基础六(自定义类、ArrayList集合)
今日内容介绍1.自定义类型的定义及使用2.自定义类的内存图3.ArrayList集合的基本功能4.随机点名器案例及库存案例代码优化 ###01引用数据类型_类 * A: 数据类型 * a: java中 ...
- JavaSE入门学习7:Java基础语法之语句(下)
继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...
- java基础29 迭代器 listIterator() 及各种遍历集合的方法
listIterator() 迭代器包含了 Iterator() 迭代器中的所有方法. 1.ListIterator的常用方法 hasPrevious() :判断是否还有上一个元素,有则返回true ...
- 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换
------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类: Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...
- java基础(30):DBUtils、连接池
1. DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils. DBUtils就是JDBC的 ...
随机推荐
- IO编程(2)-操作文件和目录
操作文件和目录 如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只 ...
- > Manifest merger failed with multiple errors, see logs -- Android Studio问题汇总
FAQ:> Manifest merger failed with multiple errors, see logs 解决: 此问题产生原因大概有三个 # 第一,清单文件有错,这种错不会在编译 ...
- 导入eclipse工程到Android Studio中
ref:从 Eclipse 迁移至 Android Studio | Android Studiohttps://developer.android.com/studio/intro/migrate. ...
- MySQL 第六篇:数据备份、pymysql模块
一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1O8hXkdRK5_EVHZwNPwjCB ...
- 统计学习方法:CART算法
作者:桂. 时间:2017-05-13 14:19:14 链接:http://www.cnblogs.com/xingshansi/p/6847334.html . 前言 内容主要是CART算法的学 ...
- Docker login报错一例
在一台ubuntu 18.04上执行docker login 登录镜像仓库的时候,抛出如下异常: error getting credentials - err: exit status 1, out ...
- springboot 以jar方式在linux后台运行
linux命令如下: nohup java -jar 自己的springboot项目.jar >日志文件名.log 2>&1 & 命令解释: nohup:不挂断地运行命令, ...
- yum安装_yum命令的相关操作
2017年1月11日, 星期三 yum安装的四种方式 一.默认:从国外下载 二.国内:从阿里获取 http://mirrors.aliyun.com 1. cd /etc/yum.repos.d 2 ...
- onchange/onpropertychange/oninput
onpropertychange事件,顾名思义,就是property(属性)change(改变)的时候,触发事件.这是IE专有的!如果想兼容其它浏览器,有个类似的事件,oninput! 可能大家会想到 ...
- 软件测试工程师人手必备的一只:TOM猫,可以带你装逼带你飞!
Hi,你来了? 其实没有猫,为了让你们好好学习,天天向上!我可真的是拼了命了! 写这篇文章的缘由是,近期有同学经常问到一个这样的问题: 老师,tomcat是啥? 老师,Linux是啥? 老师,xshe ...