单例集合体系:

---------| 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. 【poj3375】 Network Connection

    http://poj.org/problem?id=3375 (题目链接) 题意 有$M$个网络接口和$N$台计算机,给出它们的坐标(在同一直线上),一个接口只能接一台计算机,费用为两坐标之差的绝对值 ...

  2. WEB入门.七 CSS布局模型

    学习内容 标准文档流 流动模型(flow model) 浮动模型(float model) CSS基本布局 能力目标 理解标准文档流 使用流动模型实现页面布局 使用浮动模型实现页面布局 掌握常用CSS ...

  3. sqoop 补充

    1.用 sqoop 将MySQL中的数据导入hbase中 sqoop import \--connect jdbc:mysql://***.***.*.***:3306/mysql \--hbase- ...

  4. struts2为什么action要继承actionSupport类

    我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类, 并重载(Override)此类里的String execute()方法 ...

  5. Chapter6(函数) --C++Prime笔记

    1.重载函数,也就是说一个名字可以对应几个不同的函数. 2.内置类型的未初始化局部变量将产生未定义的值. 3.局部静态对象在程序执行路径第一次进过对象定义语句时初始化,并且直到程序终止才被销毁. 内置 ...

  6. Kubernetes集群中Service的滚动更新

    Kubernetes集群中Service的滚动更新 二月 9, 2017 0 条评论 在移动互联网时代,消费者的消费行为已经“全天候化”,为此,商家的业务系统也要保持7×24小时不间断地提供服务以满足 ...

  7. thinkphp3 行为(behavior)分析和基本使用

    1. 名词解析 官方解析: 来自 http://document.thinkphp.cn/manual_3_2.html#behavior_extend 行为(Behavior)是一个比较抽象的概念, ...

  8. array_multisort 二维数组排序

    用PHP自带array_multisort函数排序 <?php $data = array();    $data[] = array('volume' => 67, 'edition' ...

  9. Docker Swarm应用--lnmp部署WordPress

    一.简介 目的:使用Docker Swarm 搭建lnmp来部署WordPress 使用Dockerfile构建nginx.php镜像 将构建的镜像上传docker私有仓库 使用volume做work ...

  10. Python 函数01

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...