我正在研究一个java项目,需要在两个数组之间打印公共值。
我已经按照排序顺序打印了两个数组,它们看起来都很好(包含它们应该包含的所有值)。但是,当我遵循最简单的算法(见下文)时,我找不到所有常用值,即使我可以手动查看两个数组的打印输出,而不进行比较,执行下面后应该打印更多的值: / p>
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;
}
}
}
请让我知道你的想法。希望这只是一个简单的错误。
答案 0 :(得分:4)
if(fibList.get(i).equals(primeList.get(j)))
可以使用。
答案 1 :(得分:4)
最有可能你想:
变化:
if(fibList.get(i) == primeList.get(j))
要:
if(fibList.get(i).equals(primeList.get(j)))
答案 2 :(得分:4)
List<Integer> result = new ArrayList<Integer>(fibList);
result.retainAll(primeList);
for (Integer i : result) {
System.out.println(i);
}