根据《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++技术问题总结-第0篇 类型转换

    从今天開始,对C++经常使用技术做个总结. 參考书籍:<C++Primer>.<C++对象模型>.<设计模式>.<Windows核心编程>.<ST ...

  2. Array.prototype.forEach()&&Array.prototype.map()

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach https ...

  3. Java 中override、overload、overwrite区别,以及与多态的关系【转】

    因为早期的翻译导致了override和overwrite的解释及理解混乱,需要重新梳理这几个词及相关内容. 转自:http://blog.csdn.net/lzhang007/article/deta ...

  4. ddraw 视频下绘图 不闪烁的方法

    我们假设是在在RGB视频上绘图(直线,矩形等),一般採用双缓冲区继续,使用内存MemoryDC,来实现画的图形在视频上显示不闪烁的功能,可是我们知道用RGB显示视频都是使用GDI进行渲染,这样非常耗C ...

  5. Cocos2d-x 3.1 一步一步地做改编

    本文并不想谈论的屏幕改编或真理的概念.假设不知道cocos2d-x的,请先看这篇文章:http://www.cocoachina.com/gamedev/cocos/2014/0516/8451.ht ...

  6. SecureCRT下载/注册/安装镜像文件

    #$language = "VBScript" #$interface = "1.0" ' This automatically generated scrip ...

  7. 学习git命令

    1.git init @创建仓库 2.git add  filename @添加文件到缓存区 3.git commit -m"注释说明"   @提交修改内容 4.git statu ...

  8. 自定义 DependencyProperty 与 RoutedEvent

    原文:自定义 DependencyProperty 与 RoutedEvent //自定义依赖属性 class MyBook : DependencyObject//依赖属性必须派生自Dependen ...

  9. XF 列表视图事件

    <?xml version="1.0" encoding="utf-8" ?><ContentPage xmlns="http:// ...

  10. WPF值转换器的使用

    <Window x:Class="CollectionBinding.MainWindow"        xmlns="http://schemas.micros ...