单例集合体系:

---------| 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集合的更多相关文章

  1. java基础解析系列(十)---ArrayList和LinkedList源码及使用分析

    java基础解析系列(十)---ArrayList和LinkedList源码及使用分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder jav ...

  2. Java基础学习(四)-- 接口、集合框架、Collection、泛型详解

    接口 一.接口的基本概念 关键字为:Interface,在JAVA编程语言中是一个抽象类型,是抽象方法的集合.也是使用.java文件编写.   二.接口声明 命名规范:与类名的命名规范相同,通常情况下 ...

  3. java基础30问

    Java基础知识30问   1. 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用 ...

  4. Java基础语法(自定义类、ArrayList集合)

    Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...

  5. Java基础六(自定义类、ArrayList集合)

    今日内容介绍1.自定义类型的定义及使用2.自定义类的内存图3.ArrayList集合的基本功能4.随机点名器案例及库存案例代码优化 ###01引用数据类型_类 * A: 数据类型 * a: java中 ...

  6. JavaSE入门学习7:Java基础语法之语句(下)

    继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...

  7. java基础29 迭代器 listIterator() 及各种遍历集合的方法

    listIterator() 迭代器包含了 Iterator() 迭代器中的所有方法. 1.ListIterator的常用方法 hasPrevious() :判断是否还有上一个元素,有则返回true  ...

  8. 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换

    ------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类:        Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...

  9. java基础(30):DBUtils、连接池

    1. DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils. DBUtils就是JDBC的 ...

随机推荐

  1. XML外部实体(XXE)注入详解

    ###XML与xxe注入基础知识 1.XMl定义 XML由3个部分构成,它们分别是:文档类型定义(Document Type Definition,DTD),即XML的布局语言:可扩展的样式语言(Ex ...

  2. bzoj3672: [Noi2014]购票(树形DP+斜率优化+可持久化凸包)

    这题的加强版,多了一个$l_i$的限制,少了一个$p_i$的单调性,难了好多... 首先有方程$f(i)=min\{f(j)+(dep_i-dep_j)*p_i+q_i\}$ $\frac {f(j) ...

  3. 利用机器学习实现微信小程序-加减大师自动答题

    之前有看到微信小程序<跳一跳>别人用python实现自动运行,后来看到别人用hash码实现<加减大师>的自动答题领取娃娃,最近一直在研究深度学习,为啥不用机器学习实现呢?不就是 ...

  4. SSH连接与自动化部署工具paramiko与Fabric

    paramiko paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方法.可以实现远程命令执行,文件传输,中间SSH代理等功能,相对于Pexpect,封装层次更高. pip ...

  5. mysql 复制表数据,表结构的3种方法

    什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份.如果用mysqldump比较麻烦,备份.MYD,.MYI这样的 ...

  6. javamail模拟邮箱功能获取邮件内容-中级实战篇【内容|附件下载方法】(javamail API电子邮件实例)

    引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

  7. 同一个IIS绑定多个Htts 站点问题

    默认情况一个服务器的IIS只能绑定一个HTTPS也就是443端口 要实现多个站点对应HTTPS只能更改IIS配置 地址:C:Windowssystem32inetsrvconfigapplicatio ...

  8. 从咖啡馆的经营看 Web 应用的扩展

    我经营着一家咖啡馆.经营成本同所用的资源成正比. 我的咖啡馆店面大概有一百平方英尺(约九平方米),雇佣了一个咖啡师,一台咖啡机. 营业能力: 每次能够服务一个顾客,用三分钟泡制一杯咖啡,算下来服务一个 ...

  9. input必填

    <li> <span>出生日期</span> <div style="margin-left: 1.5rem;"> <inpu ...

  10. 【leetcode 简单】 第八十六题 有效的完全平方数

    给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False. 注意:不要使用任何内置的库函数,如  sqrt. 示例 1: 输入: 16 输出: Tr ...