java 集合的用法

在这里插入图片描述
1.ArrayList 集合底层代码是数组实现的,不断扩容。查询快,增删慢,所以一般用于查询。
2.LinkedList 集合底层代码是链表,增删快,查询慢。一般用于增删数据。
3.TreeSet可以排序是因为底层是红黑树。(自然排序和比较器排序)
4.如果 HashSet(哈希表结构) 集合 存储,自定义对象的过程当中,必须重写 hashCode 和 equals 方法。因为不重写比较的就是地址值。属性值相同但是地址值是不同的,还不是一个元素,无法去重。
注:

  1. 没有重写 hashCode() 方法,底层是根据地址值计算, hash值不相同。
  2. 如果重写 hashCode() 方法,底层是根据属性值计算, hash值相同。
  3. JDK7 底层是: 数组 + 链表
  4. JDK8 底层是: 数组 + 链表 + 红黑树 //当链表的长度>8的时候,自动转换成为红黑树。(提高查询的效率)

a、Map集合,主要是用来解决 一一对应问题。 他是一个键值对。一个键,对应一个值。 //理解: 夫妻对。(一夫一妻)
b、键,不可以重复。 值,可以重复 //如果键是自定义类的对象,那么自定义的类,需要重写 hashCode 和 equals
c、//Map集合的遍历方式: 三种
//[1] keySet 召集所有的丈夫,找到对应的媳妇
//[2] entrySet 通过结婚证,得到丈夫和媳妇
//[3] Lambda
6、HashMap底层是哈希表结构的
7、TreeMap底层红黑树结构,可以排序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值