文章目录

  • 概述
  • 容器 = Collection + Map
  • Collection
    • Set
      • TreeSet
      • HashSet
      • LinkedHashSet
    • List
      • ArrayList
      • Vector
      • LinkedList
    • Queue
      • LinkedList
      • PriorityQueue
  • Map
    • TreeMap
    • HashMap
    • HashTable
    • LinkedHashMap


概述

容器,就是可以容纳其他Java对象的对象。 Java Collections Framework(JCF) 为Java开发者提供了通用的容器。

我们知道 Java容器里只能放对象,对于基本类型(int, long, float, double等),需要将其包装成对象类型后(Integer, Long, Float, Double等)才能放到容器里。很多时候拆箱和装箱能够自动完成

这虽然会导致额外的性能和空间开销,但简化了设计和编程。


容器 = Collection + Map

容器主要包括 Collection 和 Map 两种 ;

  • Collection 存储着对象的集合
  • Map 存储着键值对(两个对象)的映射表

图片来源: https://pierrchen.blogspot.com/2014/03/java-collections-framework-cheat-sheet.html

Collection

Set

TreeSet

基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。

但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。


HashSet

基于哈希表实现,支持快速查找,但不支持有序性操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。


LinkedHashSet

具有 HashSet 的查找效率,且内部使用双向链表维护元素的插入顺序

List


ArrayList

基于动态数组实现,支持随机访问。


Vector

和 ArrayList 类似,但它是线程安全的


LinkedList

基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。不仅如此,LinkedList 还可以用作栈、队列和双向队列。


Queue

LinkedList

可以用它来实现双向队列


PriorityQueue

基于堆结构实现,可以用它来实现优先队列。


Map

TreeMap

基于红黑树实现。


HashMap


HashTable

和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程可以同时写入 HashTable 并且不会导致数据不一致。它是遗留类,不应该去使用它。现在可以使用 ConcurrentHashMap 来支持线程安全,并且 ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁


LinkedHashMap

使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序

Java Review - 集合框架=Collection+Map相关推荐

  1. 集合框架(Collection)——Map和例题

    目录 1.Map 2.案例 案例一 案例二 案例三 1.Map 1. Map   1.1 特点:无序.以键值对的形式添加元素,键不能重复,值可以重复            它没有继承Collectio ...

  2. Java基础 - 集合框架(5) : Map集合、Collections

    1. Map集合的概述和特点 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 2. Map和Collection的区别 ? A. Map 存储的是键值对形式的元素,键唯一,值 ...

  3. java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合

    I学霸官方免费教程三十三:Java集合框架之Map集合 Map接口 Map集合采用键值对(key-value)的方式存储数据,其中键不可以重复.值可以重复. 常用类有HashMap.TreeMap和P ...

  4. 第19章 集合框架(3)-Map接口

    第19章 集合框架(3)-Map接口 1.Map接口概述 Map是一种映射关系,那么什么是映射关系呢? 映射的数学解释 设A,B是两个非空集合,如果存在一个法则,使得对A中的每一个元素a,按法则f,在 ...

  5. java三大集合框架(面试知识储备精华篇)

    java三大集合框架 :  set  list   map 如上图 set list 都属于collection的子接口(collection为顶层接口) Map 不属于collection接口 Se ...

  6. java基础—集合框架

    java基础-集合框架 JDK1.2开始引入了集合框架的概念,以弥补java中只有数组这种容器的单一问题,这些框架多数由接口构成,另外也包含了一些对于接口实现的类,其中这些接口的最上层接口为java. ...

  7. Java 集合框架 : Collection、Map

    1. Collection接口是Java集合框架的基本接口,所所有集合都继承该接口. 1.1 方法 : public interface Collection<E> extends Ite ...

  8. 集合框架Collection、Map查找表(Java SE第三阶段9)

    目录 Collection List和Set 集合方法 集合持有对象的引用 集合间操作方法 Iterator迭代器 增强型for循环 泛型机制 List List(ArrayList和LinkedLi ...

  9. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

最新文章

  1. python写数据结构书_有哪些用 Python 语言讲算法和数据结构的书?
  2. synchronized 和 volatile 关键字的作用
  3. 数据驱动业务——梦想成真,只差一步
  4. 使用window.postMessage实现跨域通信
  5. Mysql梳理(单表查询)
  6. layui生产管理系统_ssm开发生产制造业MES系统源码
  7. 一个demo学会css
  8. 跟我一起学习ASP.NET 4.5 MVC4.0(四)(转)
  9. 44.事件分发(示例)
  10. 在Code First中自动创建Entity模型
  11. 通过软件调整显示器的扩展、复制、显示器输入源
  12. 5个音效素材网站,赶紧收藏
  13. Report Machine 的问题 补充!!!
  14. PDF如何加水印? PDF加水印的方法
  15. 511遇见易语言取屏幕分辨率和设置屏幕分辨率
  16. gpt和mbr用来装服务器系统,给win10分区用MBR还是GPT?详解MBR还是GPT的区别
  17. 【HUSTOJ】1049: 字符图形5-星号梯形
  18. 使用php的curl爬去青果教务系统 课表(转)
  19. 如何用查看wifi密码
  20. sa8155 qnx开发笔记之一设备共享

热门文章

  1. android 辅助服务 简书,Android AccessibilityService使用
  2. 华为手机微信网络连接到服务器失败怎么办,微信H5支付在华为手机里报错 网络环境未能通过安全验证,请稍后再试 怎么解决啊 试了好多方法也不行...
  3. 水平拉滑轮组计算机械效率的题,机械效率杠杆论文,关于中考物理机械效率计算题*相关参考文献资料-免费论文范文...
  4. 开机显示输入最佳预设值_开机密码忘了怎么解决
  5. 温铁军、林毅夫、陈平,从学术、现实等多方面来分析,谁的价值高?
  6. c++ hello word
  7. pytho sin(1/x)震荡间断点
  8. TensorFlow莫烦 placehoder (三)
  9. 深度学习核心技术精讲100篇(二十)-如何通过树模型实现梯度提升树(GBDT)+LR,随机森林(RandomForest) +LR
  10. 塞尔达传说gba_回顾 | 猹鱼主题速写:塞尔达传说 英国绅士