根据《java编程思想》里面的说法,java集合又叫容器,按照单槽和双槽分为两类,Collection和Map,这两个都是接口。

一、Collection

Collection下面又分了三个子接口,分别是Set,List和Queue,他们的特性分别是:

1.Set:元素唯一,即Set中的元素永远不可能重复,跟数学中的集合概念是一样的。它的所有实现类都有相同的特征。

主要实现类有三个:HashSet,LinkedHashSet,TreeSet

  • HashSet的底层实现是HashMap中的key,因此它的特点是无序不重复;
  • LinkedHashSet底层实现是LinkedHashMap,特点是元素变得有序了。这里的有序指遍历顺序和插入顺序相同。
  • TreeSet的底层实现是TreeMap,也是有序的,这里的有序指按照元素本身的大小排序,对于Integer、String,本身已经实现了Comparable接口,所以他们是可比较的。开发者自定义的对象,需要自己实现Comparable接口,以方便程序执行元素的比较。

2.List:有序,List是有序可重复的,这里的有序也是只遍历顺序和插入顺序相同。最常用的实现类:

  • ArrayList底层实现是数组,所以查询效率高,增删效率低;
  • LinkedList底层实现是链表,长于插入删除,查询效率低。

3.Queue:队列,特点是先进先出,只允许在队列前端删除,队列后端插入,常用实现类PriorityQueue.

二、Map

如果说数组和List实现了下标和元素对象的映射,那么Map就实现了对象和对象之间的映射。

主要实现类:HashMap,LinkedHashMap和TreeMap

HashMap的底层使用了哈希表,可以实现快速的查找。

LinkedHashMap最大的特点是key值有序了,遍历顺序和插入顺序相同。

TreeMap的底层是红黑树,新插入的元素会跟Map中原有元素进行比较,并插入到该插入的位置。TreeMap中对象,必须实现Comparable接口。

java集合框架collection(6)继承结构图的更多相关文章

  1. Java集合框架Collection

    转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接 ...

  2. JAVA集合框架 - Collection

    collection大致介绍 Collection是集合层次结构中的根接口. 集合表示一组对象.有些集合允许重复元素,有些则不允许.有些是有序的,有些是无序的. JDK没有提供此接口的任何直接实现:它 ...

  3. java集合框架collection(4)HashMap和Hashtable的区别

    HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别.主要的区别有:线程安全性,同步(synchronizatio ...

  4. java集合框架collection(5)HashMap和TreeMap

    上图转载自:http://www.cnblogs.com/vamei/archive/2013/04/15/3000913.html 一.区别和联系 1.迭代器 迭代器是一种设计模式,它是一个对象,它 ...

  5. java集合框架collection(3)Set、List和Map

    Set.List和Map是java collection中最常用的三种数据结构. Set是集合,不允许有重复的元素,List是动态数组实现的列表,有序可重复,Map是key-value的键值对,用于快 ...

  6. java集合框架collection(2)ArrayList和LinkedList

    ArrayList是基于动态数组实现的list,而LinkedList是基于链表实现的list.所以,ArrayList拥有着数组的特性,LinkedList拥有着链表的特性. 优缺点 ArrayLi ...

  7. Java集合框架Collection(1)ArrayList的三种遍历方法

    ArrayList是java最重要的数据结构之一,日常工作中经常用到的就是ArrayList的遍历,经过总结,发现大致有三种,上代码: package com.company; import java ...

  8. Java自学-集合框架 Collection

    Java集合框架 Collection Collection是一个接口 步骤 1 : Collection Collection是 Set List Queue和 Deque的接口 Queue: 先进 ...

  9. Lambda表达式和Java集合框架

    本文github地址 前言 我们先从最熟悉的Java集合框架(Java Collections Framework, JCF)开始说起. 为引入Lambda表达式,Java8新增了java.util. ...

随机推荐

  1. C++重载加号运算符实现两个结构体的相加

    #include<iostream> #include<string> using namespace std; struct S { int a, b; string str ...

  2. Facebook学长交流分享

    印象中这似乎是 Facebook 第一次来浙大校园做交流. 前不久,也参加了 Google 的校园宣讲,G 的两大宣讲主题是 Google 介绍和模拟面试.印象最深的是无敌的一家三口每年 100w 封 ...

  3. so文件成品评论【整理】

    这是我的 @布加迪20 AZ在一篇文章中写道:<汉化so文件的心得>中的技术附件做的简洁性整理.原来的看起来不是非常方便.一起分享学习.. 正文 SO文件汉化心得 --By布加迪20   ...

  4. 度小于所述过程:KanboxEnt.exe

    在防火墙管理.见未知的过程"KanboxEnt.exe" 程序信息: 版权声明:本文博主原创文章.博客,未经同意不得转载.

  5. [Servlet]Servlet工作流程及注意事项

    Servlet工作过程 采用Servlet完成Web实际的工作流应用程序是通过Tomcatserver公布服务,client与server遵循的端部之间的相互作用Http议完毕的. 详细工作流程例如以 ...

  6. Python入门(good)

    Python缩进和冒号对于Python而言代码缩进是一种语法,Python没有像其他语言一样采用{}或者begin...end分隔代码块,而是采用代码缩进和冒号来区分代码之间的层次. 缩进的空白数量是 ...

  7. 1.4微服务前奏 netcore学习

    1.要让vs2017能够选择.net core 2.1版本,只需要安装.net core2.1的sdk安装包就行了 官方地址:https://www.microsoft.com/net/learn/g ...

  8. B 维背包+完全背包 Hdu2159

    <span style="color:#3333ff;">/* ---------------------------------------------------- ...

  9. visualsvn server 提交修改日志

    修改日志时遇到以下错误: Repository has not been enabled to accept revision propchanges;ask the administrator to ...

  10. 白平衡自己主动(AWB)算法---2,颜色计算

    本文说明了白平衡算法估计当前场景的色温过程. 色温计算的原理并不复杂,但要做到,还是一道,认真做好每一步,这需要大量的测试,和算法一直完好. 关于该过程首先简要: 1, 取的图像数据,并划分MxN块, ...