单例集合体系:

---------| 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. ButterKnife注入注解框架用法

    Android 依赖注入 ButterKnife 基本使用 - 渐行渐远渐无声 - 博客园http://www.cnblogs.com/fansen/p/5653887.html ButterKnif ...

  2. 【2018北京集训(六)】Lcm

    Portal --> 出错啦qwq(好吧其实是没有) Description 给定两个正整数\(n,k\),选择一些互不相同的正整数,满足这些数的最小公倍数恰好为\(n\),并且这些数的和为\( ...

  3. Educational Codeforces Round 63 (Rated for Div. 2) 题解

    Educational Codeforces Round 63 (Rated for Div. 2)题解 题目链接 A. Reverse a Substring 给出一个字符串,现在可以对这个字符串进 ...

  4. 关于JSON的解析方式

    借鉴:站在巨人的肩膀上 一.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,在Json.org网站上,Java可以使用 ...

  5. 自定义UITableViewCell的方法

    1.纯XIB/storyboard自定义.对应一个Controller的storyboard上拖拽出一个自定义Cell,并加上ReuseIdentifitor 2.纯代码自定义,通过在contentV ...

  6. Fireworks基本使用

    新建文件:ctrl+n 打开:ctrl+o 调出和隐藏标尺:ctrl+r 清除辅助线:视图.辅助线.清除辅助线 放大镜:z:放大镜状态下alt+左键:缩小 抓手:快捷键 测量距离:先拉出2根辅助线,然 ...

  7. 调用weka模拟实现 “主动学习“ 算法

    主动学习: 主动学习的过程:需要分类器与标记专家进行交互.一个典型的过程: (1)基于少量已标记样本构建模型 (2)从未标记样本中选出信息量最大的样本,交给专家进行标记 (3)将这些样本与之前样本进行 ...

  8. 生成电脑的ssh key值

    通过命令 ssh-keygen -t rsa -C "你的邮箱" 然后在用户目录下找到.ssh文件夹,这个是隐藏的,然后打开id_rsa.pub文件,里面的内容就是需要的ssh k ...

  9. 转【Zabbix性能调优:配置优化】

    转载:https://sre.ink/zabbix-turn-conf/ #通过日志可以分析当前服务状态.LogFile=/tmp/zabbix_server.log #日志文件路径.LogFileS ...

  10. Redis学习五:Redis的持久化-RDB

    RDB(Redis DataBase) 一.是什么 1.概念:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 2.执行方式: R ...