== 、equals、hashCode 作用与区别
== 两个对象是否相等,因为判断是的是对象存在的物理地址,所以当返回值为 true 时说明两个索引是指向同一个对象。
equals 是开放给程序员使用,当两个对象不同时给一个机会使其判定相等,只需要重写 equals 方法。
hashCode 首先 hashCode 是地址加码映射运算出的一个 int 值,一般用做散列表的 Hash 运算。如果重写了equlas 方法,即希望两个地址不相同的对象被当作同一个对象同时也需要重写 hashCode 方法,不重写两个对象无法映射同一个散列表下标,即使 equlas 方法相同在散列表中依然被存了两次。
集合的特点
- 集合的特点主要有如下两点:
- 集合用于存储对象的容器,对象是用来封装数据,对象多了也需要存储集中式管理。
- 和数组对比对象的大小不确定。因为集合是可变长度的。数组需要提前定义大小
集合和数组的区别
- 数组是固定长度的;集合可变长度的。
- 数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。
- 数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。