集合之家——后段

前面讲了数据结构,List和Queue今天说的是Set和Map
Set(无序集合,集合结构)
List是可以通过下标来获取某个元素。Set中的元素是不可重复的

Set判断元素相同的依据是什么?
加入元素时,和集合中的每一个元素对比
依据:先调用对象的hashCode方法
如果hash值不相同,说明这里两个对象一定不相同。
如果hash值相同,在调用equals方法,判断两个对象的属性是否完全相同,如果返回true,则相同,返回false,则不相同
元素相同时,新元素加不进去。
HashSet

LinkedHashSet
LinkedHashSet是一个具有预知迭代顺序的无序集合。

TreeSet(树结构)
TreeSet是一个具有排序功能的无序集合而且元素必须排序,不同类型不能比较。

默认情况下:排序的依据是对象所在的类是否实现ComparTo接口(内部比较器)

Comparator外部比较器

优先选则内部比较器,如果内部比较器不能用,在使用外部比较器,不能修改源码,只能使用外部比较器。
使用内部排序比较器排序,叫自然排序
使用外部排序比较器排序,叫定制排序
如果两个都使用,会使用定制排序
下面讲的是Map
Map:键值对(key—value)
Map是一个接口,但不是Collection的子接口!
Map的键和值可以是任意类型,HashMap的键值对之间是无序的
entry是一个键值对
常用实现类:
HashMap
判断重复的依据是什么?
Hashcode and equals,值可以重复

键不可重复,如果重复,替换原有的。

通过某个键获取某个值
String str=map.get(“Jim”);
打印:

键值对之间是无序的
LinkendHashMap
键值对之间的顺序是添加时的顺序
TreeMap
也要有内部或者外部比较器和TreeSet一样
HashSet LinkedHashSet TreeSet
无序,不可重复哈希 链表维护先后顺序,哈希 必须要排序,(二叉树, 树结构)
HashMap LinkeHashMap TreeMap
键值对之间无序键不可重复 链表维护先后顺序 必须按键排序(树结构)
他们啥子关系?
Set底层使用Map实现,HashSet使用的是HashMap,LinkedHashSet使用的是LinkedHashMap,TreeSet
使用的是TreeMap
到这集合就讲完了我们来总结一下
总结集合:
Collection(接口)
Set 无序不可重复 判断元素的依据:hashCode&equals方法
HashSet 无序不可重复
LinkedHashSet 链表维护先后顺序
TreeSet 具有排序功能,内部比较器-自然排序,外部排序-定制排序
List 有序可重复
ArrayList 数组实现,顺序
LinkedList 链表实现,链式存储。
Stack:先进后出
Queue 队列,先进先出
LinkedList
Map 无序键值对
HashMap 无序键值对
LinkeHashMap 使用链表维护键值对之间的先后顺序
TreeMap 具有排序功能,必须使用键排序。内部比较器-自然排序,外部比较器-定制排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值