zoukankan      html  css  js  c++  java
  • 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、实例

     1 package com.dhb.collection;
     2 
     3 import java.util.Iterator;
     4 import java.util.LinkedList;
     5 
     6 /**
     7  * @author DSHORE / 2018-5-17
     8  *
     9  */
    10 public class Demo9 {
    11     public static void main(String[] args) {
    12         LinkedList<String> list=new LinkedList<String>();
    13         list.add("张三");
    14         list.add("李四");
    15         list.add("王五");
    16         list.add(2,"二狗子");
    17         System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五]
    18         
    19         list.addFirst("狗娃");//把元素添加到集合的首位置
    20         list.addLast("狗剩");//把元素添加到集合的末尾处
    21         System.out.println(list);//返回值:[狗娃, 张三, 李四, 二狗子, 王五, 狗剩]
    22 
    23         System.out.println("获取集合中的首位元素:"+list.getFirst());//返回值:狗娃
    24         System.out.println("获取集合中的末尾元素:"+list.getLast());//返回值:狗剩
    25 
    26         System.out.println("删除集合中的首位元素并返回删除的元素:"+list.removeFirst());//返回值:狗娃
    27         System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五, 狗剩]
    28         System.out.println("删除集合中的末尾元素并返回删除的元素:"+list.removeLast());//返回值:狗剩
    29         System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五]
    30         
    31         System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五]
    32         list.push("三狗子");//将指定的元素插入指定集合的开头处
    33         System.out.println(list);//返回值:[三狗子, 张三, 李四, 二狗子, 王五]
    34         System.out.println("移除并返指定回集合中的第一个元素的元素:"+list.pop());//返回值:三狗子
    35         System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五]
    36         
    37         list.offer("狗王子");//将指定元素插入到集合中的末尾处
    38         System.out.println(list);//返回值:[张三, 李四, 二狗子, 王五, 狗王子]
    39         System.out.println("删除并返回指定集合中的第一个元素:"+list.poll());//返回值:张三
    40         System.out.println(list);//返回值:[李四, 二狗子, 王五, 狗王子]
    41         
    42         Iterator<String> it=list.descendingIterator();//获取迭代器
    43         while(it.hasNext()){//遍历集合的元素
    44             System.out.print(it.next()+",");//返回值:李四, 二狗子, 王五, 狗王子,
    45         }
    46     }
    47 }

    原创作者:DSHORE

    作者主页:http://www.cnblogs.com/dshore123/

    原文出自:http://www.cnblogs.com/dshore123/p/9051776.html

    欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

  • 相关阅读:
    database homework1
    数据库基础
    MySQL操作
    [BZOJ 1305][CQOI2009]dance跳舞(网络流+二分答案)
    [BZOJ 1834][ZJOI2010]network 网络扩容(费用流)
    [BZOJ 3931][CQOI2015]网络吞吐量(SPFA+网络流)
    [BZOJ 3576][Hnoi2014]江南乐(博弈论)
    [BZOJ 1086][SCOI2005]王室联邦(贪心?树分块)
    [BZOJ 4765]普通计算姬(分块+树状数组)
    [BZOJ 4802]欧拉函数(Pollard_rho+Miller_Rabin)
  • 原文地址:https://www.cnblogs.com/dshore123/p/9051776.html
Copyright © 2011-2022 走看看