此代码不会打印正确的索引!

时间:2010-12-10 18:30:44

标签: java indexing

您好 这是我的完整代码!我有two lists,其中一个是递增顺序(inorder list)而另一个不是!它必须打印0但它会打印-1,请帮助我谢谢!

public class NewClass{

 private static List<Element> list;
 private static List<Element> inorder;

public NewClass(List listOne, List inorderOne) {
    list = new ArrayList(listOne);
    inorder = new ArrayList(inorderOne);
    FindAllowedTrees((ArrayList<Element>) list);

}
public static void FindAllowedTrees(ArrayList<Element> result) {

    for (int i = 0; i < result.size() -1; i++) {
        if (result.get(i+1).getDigit() > result.get(i).getDigit()) {


            int indx = inorder.indexOf(0);
            System.out.println(indx);


        }
    }

}

public static void main(String[] args){
    List<Element> listTwo = new ArrayList();
     List<Element> listOne = new ArrayList();
    Element e = new Element(0, 0.12);
    Element e1 = new Element(2, 0.13);
    Element e3 = new Element(3,0.5);
    listTwo.add(e);
    listTwo.add(e1);
    listTwo.add(e3);
    listOne.add(e);
    listOne.add(e1);
    listOne.add(e3);

    Collections.sort(listOne,new SortingObjectsWithDigitField());

    new NewClass(listTwo,listOne);
}
}

1 个答案:

答案 0 :(得分:2)

您的列表是Element个对象的列表。您正在寻找整数0的索引。整数永远不会等于Element,因此indexOf()找不到0并返回-1表示找不到它。