当我试图接收元素的索引时,我在编译时遇到错误(在我用注释标记的代码上找不到符号)。我有以下代码:
for (int i = 0; i < turtles.size(); i++) {
if (turtles.get(i).getX() == 450) {
results.add(turtles.get(i).indexOf(i)); //this line error
}
}
问题是我想将循环中检索到的乌龟的索引添加到名为results的新数组中。我该怎么做?
错误在于:
无法找到符号
symbol:方法indexOf(int)
location:class se.lth.cs.pt.turtle.visible.Turtle
results.add(turtles.get(i).indexOf(i));
>
答案 0 :(得分:3)
没有完整的错误&amp;所有代码我都不完全确定你要做什么,但是你不想这样做吗?
results.add(i);
或者这个:
results.add(turtles.get(i));
(...检索到的乌龟的索引是 i)
取决于您是否希望结果包含乌龟的索引或乌龟本身。
答案 1 :(得分:1)
您好我提供了一种可以使用它的方法
/**
* Method to get the index of the given item from the list
* @param stringArray
* @param name
* @return index of the item if item exists else return -1
*/
public static int getIndexOfItemInArray(String[] stringArray, String name) {
if (stringArray != null && stringArray.length > 0) {
ArrayList<String> list = new ArrayList<String>(Arrays.asList(stringArray));
int index = list.indexOf(name);
list.clear();
return index;
}
return -1;
}
答案 2 :(得分:0)
在循环之前,必须初始化该数组(如果尚未初始化)。所以,你的代码变成了:
List results = new ArrayList();
for (int i = 0; i < turtles.size(); i++) {
if (turtles.get(i).getX() == 450) {
results.add(turtles.get(i).indexOf(i));
}
}
顺便说一下,我希望您在使用turtles.get(i).indexOf(i)
时知道自己在做什么,因为您的代码中并不是很明显。
修改:看到您编辑过的问题后,我只能假设您的se.lth.cs.pt.turtle.visible.Turtle
课程出现问题。例如,它没有名为indexOf
的方法,它以int
为参数。
答案 3 :(得分:0)
我相信你的问题是indexOf将一个对象作为参数,并返回索引。如果你想在索引 i 找到对象,你可以使用'Vector.elementAt(int index)'方法。
答案 4 :(得分:0)
你应该再次重新考虑乔尔的答案(我希望它还在上面!)。你说“我得到了一只特定的乌龟...并希望将turle的索引放在一个新的数组......”,而且似乎索引实际上已经在变量“i”中了。 “获取”它不需要额外的工作。
“results.add(i)”似乎就是你想要做的。
答案 5 :(得分:0)
indexOf(Object)返回该对象第一次出现的索引。
for(Turtle _turtle : turtles){
//-- Getting index of the turtle & adding it to results
results.add(turtles.indexOf(_turtle));
}
基于索引检索对象(即使用i等)有时可能导致索引超出约束异常&amp;在操纵过程中也难以管理。
答案 6 :(得分:0)
我通过将arraylist定义为这样的整数来解决问题:
ArrayList<Integer> results = new ArrayList<Integer>();