不写equals 和 hashcode会是false false 是因为在编译期比较吧
两个方法都写了会是 true true 是比较在堆中的对象吧
那只写equals 显示 true false 我就看不懂了import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;class A1{
int a ;
public A1(int a){
this.a = a;
}
}public class Test {
public static void main(String[] args) {
List list = new ArrayList();
Set set = new HashSet();
list.add(new A1(3));
set.add(new A1(3));
System.out.println(list.contains(new A1(3)));
System.out.println(set.contains(new A1(3)));
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货