【Java之轨迹】第七章:集合总结 —— 大纲

◉ 关系图

在这里插入图片描述

◉ 注意点

① Map 和 Collection 有继承关系吗?
答:没有,是两个独立的类,只不过 Collection 的子类中有的使用了 Map 的子类

② 集合中可以存放基本数据类型吗?
答:不可以,但却可以直接写基本数据类型,因为会自动装箱变成引用数据类型

③ 集合中可以存放对象吗?
答:不可以,只是存储对象的内存地址

④ 怎么区分无序和排序?
答:无序指元素被取出来的顺序不一定是存进去的顺序,和排序没有关系,如将存进来的元素按从大到小的顺序排序,那么存进与取出的顺序就不同了,为无序可排序。


● Collection

  • 是一个 接口
  • 只要没使用泛型,就可以存储任何对象
  • 但要是用了泛型,就只能存储指定的类型
  • 所有的集合都是单个储存元素的,都可迭代

— ○ List

  • 是一个 接口 ,继承了 Collection
  • 存储特点:有序可重复,存储的元素有下标(从0开始)
  • 有序:存进去和取出来的元素顺序是相同的

—— ArrayList

  • 底层采用了 数组 数据结构
  • 线程不安全,但用的较多,有别的办法可以使线程安全
  • 数组结构适合查询,但不适合频繁的增删操作
  • 所以 ArrayList 查询效率较高,随机增删效率较低

—— LinkedSet

  • 底层采用 双向链表 数据结构
  • 链表由于在存储空间上没有顺序
  • 查找时只能从头开始查找,查找效率较低
  • 但对于随机的增删效率较高

—— Vector

  • 底层采用 数组 数据结构
  • 线程安全,方法都用 synchronized 修饰了
  • 但比较少用了,性能较差

— ○ Set

  • 是一个接口,继承了 Collection
  • 元素无序不可重复
  • 无序:存进去和取出来的元素顺序不一定相同

—— HashSet

  • 采用了 哈希表 数据结构
  • 底层其实是一个 HashMap ,元素存放在 HashMap 的 key 部分

—— SortedSet

  • 是一个 接口 ,继承了 Set
  • 存储进去的元素无序不可重复
  • 但存进去的元素会自动按照大小排序
  • 注意:无序 != 不可排序
  • 无序只是说存进去和取出来的元素顺序不一样,但排序说的是对元素进行排序,不一样
——— TreeSet
  • 采用了 二叉树 数据结构
  • 底层其实是一个 TreeMap ,元素存放在 HashMap 的 key 部分

● Map

  • 是一个 接口
  • 存储方式为键值对,以 key 和 value 的方式储存
  • 包含一个 key 对象和一个 value 对象
  • key 对象不可重复,value 对象可以重复
  • Map 中的 key 起决定性作用,通过 key 找到对应的 value
  • key 部分的元素无序不可重复,所以可以看成一个 Set 集合。但它储存的* 元素可以按照元素的大小自动排序

— ○ HashMap

  • 采用了 哈希表 数据结构
  • key 部分的元素无序不可重复,就是一个 HashSet

— ○ Hashtable

  • 是线程安全的,效率较低,使用较少

—— Properties

  • 特点:key 和 value 只能采用 字符串 类型

— ○ SortedMap

  • key 的特点依旧是无序不可重复,但会按照元素大小自动排序

—— TreeMap

  • 采用了 二叉树 数据结构

更高,更远(寒冰小澈)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒冰小澈IceClean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值