2010-12-10 7 views
0

こんにちは これは私の完全なコードです!私はtwo listsを持っていますが、1つは昇順(inorder list)で、もう1つはありません!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); 
} 
} 
+0

また、リストの各要素には2つのダブルフィールドがあります。1)数字2)確率 – user472221

+0

デバッガでプログラムをデバッグしようとするとどうなりますか? –

+0

私はそれをデバッグすると出力されます: -1 -1 – user472221

答えて

2

リストはElementのリストです。整数は0のインデックスを探しています。整数は決してElementと等しくないため、indexOf()は0を見つけず、見つからなかったことを示す-1を返します。

+0

あなたは正しいですか?私はそれを以下のように変更しました:int indx = inorder.indexOf(result.get(i)); – user472221

関連する問題