этот код не печатает правильный индекс! - PullRequest
0 голосов
/ 10 декабря 2010

Привет Это мой полный код! У меня есть 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 Ответ

2 голосов
/ 10 декабря 2010

Ваш список представляет собой список Element объектов. Вы ищете индекс целого числа 0. Целое число никогда не будет равно Element, поэтому indexOf() не находит 0 и возвращает -1, чтобы указать, что оно не было найдено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...