list与set详解

list:有下标,有序,可重复 实现类:ArrayList,LinkedList,Vector

set:无下标,无序,不可重复(利用HashCode和equals去重) 实现类:HashSet LinkedHashSet,SortedSet TreeSet

list默认长度及扩容机制

底层是数组

默认长度为0;当存入第一个数据时扩容到10,接下来每次扩容为1.5倍

Arraylist与linkedlist的区别

Arraylist是基于数组实现的,查询快(利用下标),增删满(数组是连续的,增删时要移动元素)

Linkedlist是基于链表实现的,查询慢 (需要遍历整个链表),增删快(链表将它们连接在一起,只需要修改相邻节点的指针)。

HashSet中hashcode与equals详解

在使用HashSet时,如果要将自定义对象作为元素存储在其中,则需要重写该对象的hashCode()和equals()方法。

hashCode()方法:用于确定元素的哈希值,用于在HashSet中确定元素的位置(哈希码值对数组取余,余数为要存元素位置的下标)。(元素地址值相同哈希码值一定相同,地址值不同哈希码值可能相同)

equals()方法用于比较两个元素是否相等。如果两个元素的hashCode()值相同,则会调用equals()方法来确定它们是否相等。相同则不存,不同则挂在该下标下边。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值