2016-04-27 7 views
-6

だから、私はで動物を保管のArrayListを持っている。ArrayList <String>を出力に出力しますか?

private ArrayList<Animal> catalog = new ArrayList<>(); 

さて、私は私の出力に4を押したときに、私の出力にカタログを印刷する必要があります。

case 4: 
       System.out.println("List of animals: "); 
       printIt(); //Function to print catalog 
       break; 

私は

private boolean InList(String name) { 
    for (int i = 0; i < catalog.size(); i++) { 
     if (name.equalsIgnoreCase(catalog.get(i).getName())) { 
      return true; 
     } 
    } 
    return false; 
} 

でそれを実行しようとしました。しかし、それは働いていません。あなたは私にこのコードを手伝ってもらえますか?

+0

を上書きする方法の詳細については

なぜあなただ​​けの動物のリストを印刷しようといけませんか? –

+1

'printIt'を投稿してください。InListはどのように関係していますか? –

+1

私が保存された動物であるだけで「カタログ」を印刷しようとすると、私は「[[email protected]]」 はprintitがここ プライベート文字列はprintit(){ 文字列の動物=名で取得します。 //catalog.add(); リターン動物; } –

答えて

0

Stringを返す場合は、このようにします。

String printIt(ArrayList<Animal> animals) { 
String temp = ""; 
for(Animal animal : animals) { 
temp += animal.getName() + "\n"; 
} 
return temp; 
} 

私はそれを必要としませんが、ただすぐに印刷してください。印刷さメソッドを定義

void printIt(ArrayList<Animal> animals) { 
for(Animal animal : animals) { 
System.out.println(animal.getName()); 
} 
} 
+0

ありがとうございます。 2番目のオプションを使用します。あなたは正しい、より良いもの:p –

0

は多分あまりで、あなただけの

System.out.println("List of animals: "+ catalog); 

を行うことができますが、そのためにあなたは、クラスの動物にtoStringメソッドをオーバーライドする必要があります...

あなたの場合あなたのようなものが印刷されることを無効にしないでください。

[[email protected]] 

これはdオブジェクトの文字列にefaukt ...フォーマットのような

何か:

[email protected] ..

+0

ありがとう。 toStringをオーバーライドする方法は完全にはわかりませんが、現在は動作しています。 –

0

あなたがユーザーフレンドリーを印刷するためのtoString()メソッドをオーバーライドする必要がありますオブジェクトの名前はデバッグに役立ちます。

equals()2つの動物オブジェクトを比較する方法は同じかどうかです。とき、またはObjectクラスのメソッドhttps://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html

関連する問題