java - 获取数组中元素的索引[错误]

时间:2010-11-26 17:30:16

标签: java arrays

当我试图接收元素的索引时,我在编译时遇到错误(在我用注释标记的代码上找不到符号)。我有以下代码:

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

7 个答案:

答案 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>();