Map接口和Collection接口以及

Collecttion接口
Collecttion接口分为两大类Set和List
List接口:List接口又分为ArrayList和LinkedList
ArrayList接口:
特点:1、容量不固定(有最大值,但一般达不到)
2、有序的(元素输出顺序与输入顺序一致)
3、非线程安全
4、插入元素的时候可能扩容,删除元素时不会缩小容量,不使用索引的元素查找需要遍历数组,并使用equals比较
在这里插入图片描述
LinkedList接口:
1、 LinkedList以链表的形式存储数据、对增删元素有很高的效率、查询效率较低、尤其是随机访问、效率不忍直视、
2、 LinkedList继承AbstractSequentialdList(其继承与AbstractList、所以要求其子类要实现通过索引操作元素)、使得LinkedList支持使用索引的“增删改查”操作、
3、LinkedList直接实现了List接口、使其可以内部存储元素有序并且为每个元素提供索引值、
4、LinkedList直接实现了Deque接口、Deque接口继承了Queue、使其可以作为双向链表这种数据结构来使用、操作元素。
5、LinkedList直接实现了Cloneable接口、使其可以复制其中的全部元素
6、在使用ObjectOutputStream/ObjectInputStream流时、会先讲LinkedList的capacity读取/写入到流中、然后将元素一一读取/写入
在这里插入图片描述
Set接口
HashSet和TreeSet
HashSet接口
特点: HashSet 底层数据结构是哈希表. HashSet 不是线程安全的 集合元素可以是 null
当向 HashSet 集合中存入一个元素时,HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值,
然后根据 hashCode 值决定该对象在 HashSet 中的存储位置。
HashSet 集合判断两个元素相等的标准:
两个对象通过 hashCode() 方法比较相等,并且两个对象的 equals() 方法返回值也相等。
在这里插入图片描述
TreeSet接口
特点:TreeSet中存储的类型必须是一致的,不能一下存int,一下又存string
2、TreeSet在遍历集合元素时,是有顺序的(从小到大)(如果存的字母,按字典序排列)
3、排序:当向TreeSet中添加自定义对象时,有2种排序方法,1:自然排序 2、定制排序 自然排序:要求自定义类实现java.lang.Comparable接口并重写compareTo(Object obj)方法。在此方法中,指明按照自定义类的哪个属性进行排序
在这里插入图片描述
Map接口
HashMap和TreeMap
HashMap;HashMap 是一个采用哈希表实现的键值对集合,继承自 AbstractMap,实现了 Map 接口 。
HashMap 的特殊存储结构使得在获取指定元素前需要经过哈希运算,得到目标元素在哈希表中的位置,然后再进行少量比较即可得到元素.
TreeMap:1.无序,不允许重复(无序指元素顺序与添加顺序不一致)
2.TreeMap集合默认会对键进行排序,所以键必须实现自然排序和定制排序中的一种
3…底层使用的数据结构是二叉树
排序方式:在这里插入图片描述
Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射,Map中的key不要求有序,不允许重复。value同样不要求有序,但可以重复。最常见的Map实现类是HashMap,他的储存方式是哈希表,优点是查询指定元素效率高。
集合嵌套
ArrryList嵌套HashMap
在这里插入图片描述
HashMap嵌套HashMap
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值