Map接口

HashMap和HashTable之间的区别

HashMap是线程不安全的,HashTable中的每个方法都是synchronized 修饰的,所以是安全的

HashMap的效率高点(线程安全的带来的影响)

HashMap中只允许有一个key为Null,value可以有多个为Null

HashTable中不可以有控制

HashMap初始时容量大小是16,每次扩容都是之前的两倍

HashTable初始容量是11,每次扩容都是2n+1,

如果给了容量初始值,HashTable直接给最大的容量值,HashMap给的是2的幂

HashSet和HashMap的区别

HashMap是存放键值对的,put方法添加键值对

HashSet是存放对象的,add方法添加对象的

HashMap是通过健来找到hash值的,HashSet是通过对象来算出来hashcode的,所以容易哈希碰撞,所以需要equals判断

HashSet的插入

插入时,会看所在的位置上有没有对象,或者别的对象有没有相同的hashcode,没有的话,直接插入成功,有的话,就会equals比较一下,不同的话插入成功,反之不插入

扰动函数:为了防止一些简单的哈希函数,防止发生过多的哈希碰撞

Collection工具类

排序操作

反转:void reverse(List list)

随机排序:void shuffle(LIst list)

自然排序升序:void sort(List list)

定制排序:void sort(List list, Comparator c)

交换指定位置的值:void swap(List list, int i, int j)

旋转,正数时,后distance个数整体移动到前面;负数时,前diantance个数整体移到后面:rotate(List list, diatance d)

查找,替换操作

二分查找(有序List):int binarySerach(List list, Object o)

返回最大值(自然排序):int max(Collection coll)

根据定制排序,返回最大值:int max(Collection coll, Comparator c)

指定元素替换所有元素:void fill(List list, Object o)

统计元素出现次数:int frequence(Collection coll, Object o)

指定元素第一次出现的位置:int indexOfSubList(List list, List targrt)

指定元素最后一次出现的位置:int indexOfLastList(LIst list, List target)

新元素替换所有元素:boolean replace(List list, Object oldVal, Object new Val)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值