我有一个短信类:public class SmsClass {private String numberInside;private String name;public SmsClass( String numberInside ,String name) { this.numberInside = numberInside; this.name = name;}我尝试制作两个相同ArrayList的课程:SmsClass SmsClass3 = new SmsClass("name" , "19");SmsClass SmsClass4 = new SmsClass("name" , "19" );ArrayList<SmsClass> c1 = new ArrayList<>();ArrayList<SmsClass> c2 = new ArrayList<>();c1.add(SmsClass1);c1.add(SmsClass2);c2.add(SmsClass3);c2.add(SmsClass4);我有.contains方法问题。当我运行此代码时:for(int i = 0 ; i < c1.size() ; i++){ if (c1.contains(c2.get(i))) { System.out.println("victory"); }}我有相同的数组,但没有找到。
3 回答
皈依舞
TA贡献1851条经验 获得超3个赞
您尚未定义equals
(并隐式hashCode
),因此contains
无法比较您的对象。如果您不覆盖这两种方法:Object::equals
将使用(仅使用参考比较,通过==
)和hashCode
(在 java-8 中)将计算为伪随机数(基于 Marsaglia XOR 移位算法)。
添加回答
举报
0/150
提交
取消