2017-04-16 6 views
1

インスタンス変数の配列を検索して、オブジェクトの配列内にある変数が含まれているかどうかを調べようとしています。Javaでオブジェクトの配列内のインスタンス変数の配列を検索するには?

インスタンス変数の配列に検索している単語が含まれている場合、真のブール値を返すメソッドを取得できますが、インスタンス変数の配列に単語が含まれていない場合は何も起こりません。プログラムは決して終わらない。

//array of objects (lets assume it is filled with words) 
    Dictionary[] dictionary 

    String output = "word was "; 
    if (search(dictionary) { 
     output += "found"; 
    } 
    else { 
     output += " not found"; 
    }   

    System.out.println(output); 

検索方法

public static boolean search(Dictionary[] dictionary) { 
    boolean found = false; 
    String word = "Apples"; 
    int index = 0; 

//first create a loop tho go through all objects until found or no more objects 
    while (index < dictionary.length && !found) { 

    //check if Dictionary is a thesaurus or bilingual Dictionary 
    if (dictionary[index] instanceof Bilingual) { 

     //downcast that object 
     Bilingual aDictionary = (Bilingual)dictionary[index]; 

     //get the array of instance variables for that a specific object at the index 
     String[] words = aDictionary.getAllWords(); 

     int x = 0; 

     //now go through the array & check if it contains the word 
     while(x < words.length && !found) { 
      if (words[x].equalsIgnoreCase(word)) { 
       found = true; 
      } 
      else { 
       //go to next word 
       x++; 
      } 
     } 
    } 
    else { 
     //go to next dictionary object 
     index++; 
    } 
    }     
    return found; 
} 

答えて

0

インデックスは1例のみでインクリメントされた場合には、次の辞書のオブジェクトへの検索が移動し

 //first create a loop tho go through all objects until found or no more objects 
while (index < dictionary.length && !found) { 

//check if Dictionary is a thesaurus or bilingual Dictionary 
if (dictionary[index] instanceof Bilingual) { 

    //downcast that object 
    Bilingual aDictionary = (Bilingual)dictionary[index]; 

    //get the array of instance variables for that a specific object at the index 
    String[] words = aDictionary.getAllWords(); 

    int x = 0; 

    //now go through the array & check if it contains the word 
    while(x < words.length && !found) { 
     if (words[x].equalsIgnoreCase(word)) { 
      found = true; 
     } 
     else { 
      //go to next word 
      x++; 
     } 
    } 
} 

    //go to next dictionary object 
    index++; 

}     
return found; 
を見つけていないので、あなたはそれのいずれかの方法をインクリメントする必要があります
関連する問題