每个循环的java期望对象为类型,而它包含整数数组

Sja*_*sma 2 java arraylist

我有一个初学者的Java问题.

我这样填写ArrayList:

   private ArrayList getDuplicatesIndexes(char[] letters) {
        ArrayList<int[]> duplicatesIndexes = new ArrayList<int[]>();

        for(int i = 0; i < letters.length; i++ ) {

            for(int j = 0; j < letters.length; j++) {
                System.out.println("compare this");
                System.out.println(letters[i]);
                System.out.println("with this:");
                System.out.println(letters[j]);
                if(letters[i] == letters[j] && i != j) {
                    System.out.println("match!");
                    int[] indexes = new int[2];
                    indexes[0] = i;
                    indexes[1] = j;
                    duplicatesIndexes.add(indexes);
                }
            }
        }

        return duplicatesIndexes;
    }
Run Code Online (Sandbox Code Playgroud)

我想像这样遍历它:

private void checkForSingularLetters(ArrayList duplicatesIndexes, char[] letters) {
        for(int[] indexes : duplicatesIndexes ){
            System.out.println(indexes[0]);
            ...
        }


}
Run Code Online (Sandbox Code Playgroud)

我无法解释为什么foreach循环期待一个对象,而我确定它充满了 int[]

也许有人可以向我解释.谢谢.

rge*_*man 7

您正在使用的原始形式ArrayList在你的方法checkForSingularLetters,这样就意味着Object迭代时的预期.毕竟,原始ArrayList可以包含任何东西.

使用ArrayList方法参数中的通用形式:

private void checkForSingularLetters(ArrayList<int[]> duplicatesIndexes, char[] letters) 
Run Code Online (Sandbox Code Playgroud)