3

私はJavaプロジェクトに取り組んでおり、2つの配列間で共通の値を出力する必要があります。

私は前もって両方の配列をソートされた順序で印刷しましたが、どちらも見栄えがします(必要なすべての値が含まれています)。ただし、最も単純なアルゴリズム(以下を参照)に従うと、2つの配列の出力を比較せずに手動で確認できたとしても、すべての共通値が見つかりません。以下を実行すると、さらに多くの値が出力されるはずです。

        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;
                }
            }
        }

ご意見をお聞かせください。うまくいけば、これは単なるエラーです。

4

3 に答える 3

4

if(fibList.get(i).equals(primeList.get(j)))使用することができます。

于 2012-12-04T21:32:01.353 に答える
4

ほとんどの場合、次のことを行います。

変化する:

if(fibList.get(i) == primeList.get(j))

に:

if(fibList.get(i).equals(primeList.get(j)))
于 2012-12-04T21:32:11.747 に答える
4
List<Integer> result = new ArrayList<Integer>(fibList);
result.retainAll(primeList);
for (Integer i : result) {
    System.out.println(i);
}
于 2012-12-04T21:32:34.930 に答える