我有一个初学者的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[]
也许有人可以向我解释.谢谢.
您正在使用的原始形式ArrayList在你的方法checkForSingularLetters,这样就意味着Object迭代时的预期.毕竟,原始ArrayList可以包含任何东西.
使用ArrayList方法参数中的通用形式:
private void checkForSingularLetters(ArrayList<int[]> duplicatesIndexes, char[] letters)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |