【发布时间】:2014-02-04 21:16:29
【问题描述】:
我正在处理一个 java 项目,需要打印两个数组之间的公共值。
我事先已经按排序顺序打印了两个数组,它们看起来都不错(包含它们应该包含的所有值)。但是,当我遵循最简单的算法(见下文)时,即使我可以在两个数组的打印输出中手动看到没有比较的情况下,执行以下操作后应该打印更多值,我也没有找到所有常见值:
for(int i=0; i<fibList.size(); i++)
{
for(int j=0; j<primeList.size(); j++)
{
if(fibList.get(i) == primeList.get(j))
{
System.out.print(" " + fibList.get(i));
break;
}
}
}
请告诉我你的想法。希望这只是一个简单的错误。
【问题讨论】:
-
您的清单中有什么?
Integer对象还是什么? -
这是作业吗?此外,如果列表由字符串组成,您可能想尝试 .equals() 而不是 ==
-
它们是对象数组吗?如果这样 == 不起作用,请使用 fibList.get(i).equals(primeList.get(j))
-
问题是整数是对象而不是基元。 .equals 是必要的