小白学JAVA《二十二》--- 集合的接口、类型、方法拓展

Map
HashMap中,如果是我们的自己定义的类的对象,作为键的时候,必须要重写hashcode( )和equals( ),当然上层的HashSet,也同理
HashMap底层是数组+单向链表的结构,数组用于存放键的hash值,而链表用于存储k-v结构, ,数组构成了HashMap中的Hash表,表的大小默认是16,可以存放的数据是16加载因子0.75,当超过160.75个数据时, Hash表将自动扩容,扩容后的的大小是16*2^n
Hashtable 和HashMap 的区别:
1.Hashtable是线程安全的,HashMap是线程非安全
2.HashMao中允许存放空键(只允许出现一次),空值,但是Hashtable

collections
1.适用于list排序
2.Collections.reverse( ) 反转集合
3.Collections.sort( ) 升序排序
4.Collections.max( )最大元素
5.Collections.mix( )最小元素
6.Collections和Collection的区别:Collection 是LIst列表集合,和set集合的父接口,Collections是集合工具类

set 不允许元素重复
TreeSet 集合中的元素,必须要实现Comparable接口,并重写compareTo(),底层是TreeMap,但是TreeMap是采用二叉树结构来存储数据,在二叉树中,比较元素时,比树中元素小的,永远在下一代的左边,当然,比树中元素大的,永远在下一代的右边,相等的,就直接覆盖,二叉树结构,见https://blog.csdn.net/github 26672553/article/details/7718500
Hashset底层是hashmap

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值