【发布时间】:2014-11-11 04:39:10
【问题描述】:
我有这段代码,用于检查两个数组并打印出另一个数组中不存在的值。我认为我这样做的方式并不是最有效的方式,因此任何人都可以提供更好的 OOP 方式来用 Java 编写这段代码吗?
谢谢
public class Calculate {
static int [] x = {1,2,4,6,7};
static int [] y = {2,3,4,6,7};
static boolean xflag = true;
static boolean yflag = true;
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 0; i<x.length; i++)
{
for (int b=0; b<y.length; b++)
{
if(x[i]!= y[b])
{
xflag= false;
}
else
{
xflag = true;
break;
}
}
if(xflag==false)
{
System.out.println(x[i] +" does not exist in array 2");
}
}
for(int i = 0; i<x.length; i++)
{
for (int b=0; b<y.length; b++)
{
if(y[i]!= x[b])
{
yflag= false;
}
else
{
yflag = true;
break;
}
}
if(yflag==false)
{
System.out.println(y[i] +" does not exist in array1");
}
}
}
}
【问题讨论】:
-
Collections 框架有
removeAll和retainAll方法在这里可能很有用。不过,不要直接对数组进行操作。 -
是否保证数组包含相同数量的元素或已排序?
-
我不明白你的问题 Tyler。
-
我问你是否知道这两个数组是否总是被排序和/或包含相同数量的元素。比如两个数组都包含 5 个元素。但是,如果您不确定将使用的数组类型或只是想实现代码重用状态,我建议您使用 Jayesh 的答案,而不是发布另一个答案