2015-11-14 52 views
-6

我想比较一个custom class的两个数组,它们存储一些字符串和shorts.The的目的是从第二个数组中获取那些不在第一个数组中的项。 作为回报,我想要一个我的班级数组。JAVA - 获取两个数组之间的差异

感谢您的帮助。

+4

向我们展示了你写的代码。 –

+0

很难理解你的问题,对不起。 –

+0

可能要检查出http://stackoverflow.com/questions/5283047/intersection-and-union-of-arraylists-in-java或http://stackoverflow.com/questions/13732312/differences-between-two-阵列。 – Sniper

回答

0

首先,您需要在自定义类中创建一个接受同一类的对象的方法,并测试被推测对象是否具有与调用该方法的对象相同的值。然后循环访问数组,查看对象是否等于另一个对象。这已经在String类中完成了。在字符串类中有一个方法 equals(String s)您可以使用

下面是如何比较2个字符串数组的示例。为了使它与你自定义类一起工作,只需改变数组类型并在你的类中创建一个.equals方法。

String[] array1={"Hello","Hi"}; 
String[] array2={"Hello","eat"}; 

for(int x=0;x<array1.length;x++){ 
    Boolean present=false; 
    for(int y=0;y<array2.length;y++){ 
     if(array1[x].equals(array2[y])){ 
     present=true; 
     break; 
     } 
    } 
    if(!present){ 
     System.out.println(array1[x]); 
} 
} 

编辑:

这里是你将如何让你的equals方法中的自定义类

public class custom{ 
int value; 
String text; 

public Boolean equals(custom obj){ 
    if(this.value==obj.value && this.text.equals(obj.text)){ 
    return true; 
}else{return false;} 
} 
} 
+0

非常感谢,它的工作 – DodoProgramms

+0

欢迎您,请不要忘记选择正确的答案。 – Paul