java 集合(二)

三.Set接口(唯一,无序)
3.1 HashSet实现类

简要底层原理:数组+链表 = 哈希表

1.集合中存入的数据(比如Integer,String)

2.调用对应的hashCode方法计算哈希值

3.通过哈希和一个表达式计算在数组中存放的位置

4.存放数据如果不是自定义类型数据,有重复数据,只会显示一个,如果是自定义类型数据,则需要重写hashCode 和 equals方法。
3.2 TreeSet实现类(唯一,无序:没有按照输入顺序进行输出,有序:按照升序进行遍历)

底层:二叉树(逻辑结构)

在树中放入数据的时候,最重要的事就是比较(实现Comparable内部比较器或者外部比较器)

当放入自定义类型数据时,需要实现Comparable接口,重写compareTo方法。

TreeSet在进行遍历的时候得到升序的结果:

二叉树遍历:使用中序遍历。左根右
四.Map接口(一对一对的存储)无序,唯一

常用方法:增加:put(K key, V value)

                   删除:clear() , remove(Object key)

                   查看:entrySet()[对集合中所有的key,value进行遍历查看]

                              get(Object key)

                              keySet()[对集合中所有的key进行遍历查看]

                             size()                       

                             values()[对集合中所有的value进行遍历查看]

                   判断:containsKey(Object key)  containsValue(Object value)

                                equals(Object o)  isEmpty()

4.1 HashMap实现类

特点:无序,唯一 特点是按照key进行总结的,因为底层key遵照哈希表的结构(数组+链表)
4.2 TreeMap实现类(唯一,有序,按照升序或者降序)

原理:二叉树,key遵照二叉树特点,放入集合的key的数据对应的类型内部一定要实现比较器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

z666666y

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

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

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

打赏作者

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

抵扣说明:

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

余额充值