数据结构(Java)——No1.集合框架中接口之间的关系及其含义

一.集合中的接口

用来存储管理一组对象 objects ,这些对象一般被成为元素 elements。在 Java 中除了以 Map 结尾的类之外, 其他类都实现了 Collection 接⼝。并且,以 Map 结尾的类都实现了 Map 接⼝。

在这里插入图片描述

二.接口之间的关系

在这里插入图片描述

  • Collection :用来存储管理一组对象 objects ,这些对象一般被成为元素 elements
  • Set : 元素不能重复,背后隐含着 查找 / 搜索 的语义
  • SortedSet : 一组有序的不能重复的元素
  • List : 线性结构
  • Queue : 队列
  • Deque : 双端队列
  • Map : 键值对 Key - Value - Pair ,背后隐含着 查找 / 搜索 的语义
  • SortedMap : 一组有序的键值对

三.集合框架底层数据结构

1.Llst(线性结构)

  • ArrayList: Object[]数组
  • Vector:Object[]数组
  • LinkedList : 双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环)

2.Set(元素不能重复)

  • HashSet:(无序、唯一)基于HashMap实现的,底层采用HashMap来保存元素
  • LinkedHashSet:是HashSet的子类,并且其内部是通过LinkedHashMap来实现的
  • TreeSet:(有序、唯一)红黑树(自平衡的排序二叉树)

3.Map(用key搜索的的专家)

  • HashMap:(JDK1.8之前)HashMap由数组+链表组成,数组是HashMap的主体,链表则是为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.88 以后在解决哈希冲突时有了较⼤的变化,当链表⻓度⼤于阈值(默认为 8)(将链表转换成红⿊树前会判断,如果当前数组的⻓度⼩于 64,那么会选择先进⾏数组扩容,⽽不是转换为红⿊树)时,将链表转化为红⿊树,以减少搜索时间
  • LinkedList: LinkedHashMap 继承⾃ HashMap ,所以它的底层仍然是基于拉链式散列结构即由数组和链表或红⿊树组成。另外, LinkedHashMap 在上⾯结构的基础上,增加了⼀条双向链表,使得上⾯的结构可以保持键值对的插⼊顺序。同时通过对链表进⾏相应的操作,实现了访问顺序相关逻辑。
  • Hashtable: 数组+链表组成的,数组是HashMap的主体,链表主要为了解决哈希冲突
  • TreeMap: 红黑树
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值