昨天整理了: Object类中方法总结:基于Java8 中详细讲解了equals()与hashcode()的相同不同点,
今天我们在实际的应用了来看看是怎么使用的。
在我们的实际应用中,我们想保存一些节点的坐标,但是对于重复的坐标,我们时不想保存的,这时我
们会这么做呢?
我们选择HashSet来保存这些节点的坐标,HashSet的底层实际上就是一个HashMap,对于重复的值它时不保存的。
先看下节点坐标类:
public class cor {
private int[] arr;
private int length;
public cor(int[] arr, int length){
this.arr = arr;
this.length = length;
}
}
这时候没有重写hashcode,equals方法,比较的其实还是栈区中的内容,即堆区中对象的引用,我们看下测试:
public static void main(String[] args) {
Set<cor> set = new HashSet<cor>();
int[] a = {1,2};
int[] b = {1,2};
int[] c = {2,3};
cor c1