Java学习笔记-全栈-Java基础-08-容器中的重点

泛型

泛型使遍历时不需要强制转换,帮助建立类型安全的集合。

通过remove理解“引用”

Collections类都有个remove方法:将对象从容器中移除。
但并非删除该对象,移除之后,该对象依旧还在。因为容器存放的时该对象的引用地址,移除的只是地址,实际上对象本身还在内存中。

“除了基本类型,都是引用数据类型,引用数据类型只是引用地址,而非该对象本身”

总结

1.Collection接口:
  • 1.List的元素有顺序,可重复,包括:
    • a)ArrayList:查询效率高,增删效率低,线程不安全
    • b)LinkedList:查询效率低,增删效率高,线程不安全
    • c)Vector:ArrayList的线程安全版,效率低
  • 2.Set的元素无顺序,不可重复,包括:
    • a)HashSet:查询、增删效率高
    • b)TreeSet:用TreeMap的Key实现的,内部需要对存储的元素进行排序,因此,对应的类需要实现Comparable接口(编写比较逻辑),这样才能根据compareTo()方法比较对象之间的大小,才能进行内部排序。
2. Map
  • Map,key-value,key不可重复,value可以,包括
    • a)HashMap:最常用,效率最高
    • b)TreeMap:自动按照key升序排列
3. 操作
  • 使用Iterator遍历容器
  • 类 java.util.Collections 提供了对Set、List、Map操作的方法(排序,填充,查找,打乱等)

重写equals、hashCode方法(重点)

  • 如下情况,(可能)需要重写equals/hashCode
    • a)要将自定义的对象放入HashSet中处理
    • b)要将自定义的对象作为HashMap的key
    • c)将自定义对象放入容器中后,可能会调用remove、contains时(实际上使用集合装对象的时候,约定需要重写这两个方法)

原因:

上述三个情况都隐式的涉及到了“对象比较

  • a\b中:HashSet\HashMap的key都是惟一的(所以内部实现就应该存在比较),若放入自定义对象,可能会出现“应该相同的对象但不相同”的情况,比如自定义对象id=1的有两个(实际业务我们需要他们相同),但他们在HashSet和HashMap的key中并不相同,因此需要重写equals(id相等就判断相等)和HashCode(将hash的对象都设置为ID即可保证他们HashCode一致)。

  • c中:remove和contains都涉及到对象的识别(即比较),因此需要重写equals才能识别。

  • 默认的equals比较的是对象内存地址,hashCode求的是对象内存地址转换成的数,实际也是内存地址。

全部评论

相关推荐

最近群里有很多同学找我看简历,问问题,主要就是集中在明年三月份的暑期,我暑期还能进大厂嘛?我接下来该怎么做?对于我来说,我对于双非找实习的一个暴论就是title永远大于业务,你在大厂随随便便做点慢SQL治理加个索引,可能就能影响几千人,在小厂你从零到一搭建的系统可能只有几十个人在使用,量级是不一样的。对双非来说,最难的就是约面,怎么才能被大厂约面试?首先这需要一点运气,另外你也需要好的实习带给你的背书。有很多双非的同学在一些外包小厂待了四五个月,这样的产出有什么用呢?工厂的可视化大屏业务很广泛?产出无疑是重要的,但是得当你的实习公司到了一定的档次之后,比如你想走后端,那么中厂后端和大厂测开的选择,你可以选择中厂后端(注意,这里的中厂也得是一些人都知道的,比如哈啰,得物,b站之类,不是说人数超过500就叫中厂),只有这个时候你再去好好关注你的产出,要不就无脑大厂就完了。很多双非同学的误区就在这里,找到一份实习之后,就认为自己达到了阶段性的任务,根本不再投递简历,也不再提升自己,玩了几个月之后,美其名曰沉淀产出,真正的好产出能有多少呢?而实际上双非同学的第一份实习大部分都是工厂外包和政府外包!根本无产出可写😡😡😡!到了最后才发现晚了,所以对双非同学来说,不要放过任何一个从小到中,从中到大的机会,你得先有好的平台与title之后再考虑你的产出!因为那样你才将将能过了HR初筛!我认识一个双非同学,从浪潮到海康,每一段都呆不久,因为他在不断的投递和提升自己,最后去了美团,这才是双非应该做的,而我相信大部分的双非同学,在找到浪潮的那一刻就再也不会看八股,写算法,也不会打开ssob了,这才是你跟别人的差距。
迷茫的大四🐶:我也这样认为,title永远第一,只有名气大,才有人愿意了解你的简历
双非本科求职如何逆袭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务