importとかは端折ってます。
java
1public class Main { 2 3 /** 4 * メインメソッド 5 * @param args 6 */ 7 public static void main(String[] args) { 8 9 //動物リスト作成 10 ArrayList<Animal> raionList = new ArrayList<Animal>(); 11 ArrayList<Animal> zouList = new ArrayList<Animal>(); 12 ArrayList<Animal> camelList = new ArrayList<Animal>(); 13 14 //動物を作成 15 Animal raion = new Animal(); 16 raion.setName("ライオン"); 17 18 //System.out.println(raion.getName()); 19 20 Animal zou = new Animal(); 21 zou.setName("ゾウ"); 22 23 //System.out.println(zou.getName()); 24 25 Animal camel = new Animal(); 26 camel.setName("らくだ"); 27 28 //System.out.println(camel.getName()); 29 30 31 //上記で作成した動物をそれぞれ動物リストに格納する 32 //ライオン3匹 33 raionList.add(raion); 34 raionList.add(raion); 35 raionList.add(raion); 36 //ゾウ2匹 37 zouList.add(zou); 38 zouList.add(zou); 39 //らくだ1匹 40 camelList.add(camel); 41 42 43 //それぞれの動物リストをそれぞれの檻に格納 44 45 Gage raionGage = new Gage(); 46 raionGage.setAnimalList(raionList); 47 48 //三匹入っている。 49 //System.out.println(raionGage.getAnimalList()); 50 51 Gage zouGage = new Gage(); 52 zouGage.setAnimalList(zouList); 53 54 //2匹入っている。 55 //System.out.println(zouGage.getAnimalList()); 56 57 Gage camelGage = new Gage(); 58 camelGage.setAnimalList(camelList); 59 60 //1匹入っている。 61 //System.out.println(camelGage.getAnimalList()); 62 63 //檻を動物ショップに設定 64 AnimalShop shop = new AnimalShop(); 65 66 //ライオンを設定 67 shop.setGageList(raionGage); 68 69 //ゾウを設定 70 shop.setGageList(zouGage); 71 72 //らくだを設定 73 shop.setGageList(camelGage); 74 75 //ショップ内の動物をすべて表示 76 shop.showAnimalAll(); 77 78 }
檻
java
1/** 2 * 檻クラス 3 * @author 4 */ 5public class Gage { 6 7 /** 動物リスト */ 8 private ArrayList<Animal> animalList; 9 10 /** 11 * コンストラクタ<br> 12 * 動物リストを初期化 13 */ 14 public Gage(){ 15 16 //ここは初期化は必要なのか? 17 this.animalList = new ArrayList<Animal>(); 18 } 19 20 /** 21 * animalListを設定するメソッド 22 * @param animalList 動物リストを設定する 23 */ 24 public void setAnimalList(ArrayList<Animal> animalList) { 25 26 this.animalList = new ArrayList<Animal>(); 27 this.animalList = animalList; 28 //System.out.println(this.animalList); 29 30 } 31 32 /** 33 * animalListを取得するメソッド 34 * @return animalList 動物リスト 35 */ 36 public ArrayList<Animal> getAnimalList() { 37 return animalList; 38 } 39}
動物
java
1 2/** 3 * 動物クラス 4 * @author 5 */ 6public class Animal { 7 /** 動物の名前 */ 8 private String name; 9 10 /** 11 * 動物の名前を設定 12 * @param name 名前 13 */ 14 public void setName(String name){ 15 this.name = name; 16 } 17 18 /** 19 * 動物の名前を取得 20 * @return String 動物の名前 21 */ 22 public String getName(){ 23 return this.name; 24 } 25} 26
animalショップ
java
1 2/** 3 * @author 4 */ 5public class AnimalShop { 6 7 /** 檻リスト */ 8 private HashMap<String, Gage> gageList; 9 10 /** 11 * コンストラクタ<br> 12 * 檻リストを初期化 13 * @param shopName 14 */ 15 public AnimalShop(){ 16 this.gageList = new HashMap<String, Gage>(); 17 } 18 19 /** 20 * 引数の檻をフィールドの檻リストに設定<br> 21 * 檻内の動物名をキーに檻リストに設定する 22 * @param gage 檻 23 */ 24 public void setGageList(Gage gage){ 25 26 //フィールドの檻リストを初期化 27 //this.gageList = new HashMap<String, Gage>(); 28 //↑初期化ではなくてobjectを代入している。 29 30 //檻内の動物名を取得 31 ArrayList<Animal> animalList = gage.getAnimalList(); 32 33 //各動物リストの名前は同じであるため要素0番目を取得 34 Animal animal = (Animal)animalList.get(0); 35 36 //動物名を取得 37 String name = animal.getName(); 38 39 //動物名をキーに檻を設定 40 gageList.put(name , gage); 41 42 } 43 44 /** 45 * 檻リスト内の動物を全て表示するメソッド 46 */ 47 public void showAnimalAll(){ 48 49 for(Gage gage: gageList.values()){ 50 //動物リストを取得 51 ArrayList<Animal> animalList = gage.getAnimalList(); 52 53 //動物名 引数を表示 54 for(Animal animal: animalList){ 55 System.out.println("動物名:" + animal.getName()); 56 System.out.println("匹数:" + animalList.size()); 57 } 58 } 59 } 60}
javaを学習中です。
今、コレクションフレームワークについて勉強をしています。
理想の表示
動物名:ゾウ
匹数:2匹
動物名:ライオン
匹数:3匹
動物名:らくだ
匹数:1匹
ここまで作れたのですが、
動物名:らくだ
匹数:1匹
しか表示しないです。
自分でどこがダメなのかがわからなくなってしまいました。
どのようにしたらよいのでしょうか?
回答3件
あなたの回答
tips
プレビュー