質問編集履歴

1

さきほど質問したコードにおいてArrayListを使いたいのですが、どうすれば八日わかりません。書いたコードと目的の詳細を追加しました。

2020/02/23 07:33

投稿

chimo
chimo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,117 @@
59
59
  質問がおおくて大変申し訳ないです。
60
60
 
61
61
  どなたかお力添えお願いします。
62
+
63
+
64
+
65
+ 【追記】
66
+
67
+ 上の質問内容が解決したうえで、String型を扱うArrayListである「adultFamaleDogsList」を作成したいと思います。ただ、習いたてでいまいちこのコード内においてどのようにArrayListを作ればよいかわかりません。
68
+
69
+ ArrayListを作ろうとおもって以下の通りにコードを書いてみましたがdogs配列から条件にあう項目のみを抽出して新たな配列であるadultFemaleDogsListに格納しただけになってしまいました...。
70
+
71
+
72
+
73
+ ```Java
74
+
75
+ import java.util.List;
76
+
77
+ import java.util.ArrayList;
78
+
79
+
80
+
81
+ class Ex1_15_2{
82
+
83
+ public static void main (String[] args) {
84
+
85
+
86
+
87
+ /*
88
+
89
+ **犬の情報を持つ配列。格納されている情報は以下のとおり。
90
+
91
+ ** - dogs[x][0]:名前
92
+
93
+ ** - dogs[x][1]:年齢
94
+
95
+ ** - dogs[x][2]:性別
96
+
97
+ */
98
+
99
+ String[][] dogs = {
100
+
101
+ {"モコ" , "4歳" , "メス"} ,
102
+
103
+ {"ムギ" , "2歳" , "オス"} ,
104
+
105
+ {"ブブ" , "3歳" , "メス"} ,
106
+
107
+ {"シロ" , "8歳" , "オス"} ,
108
+
109
+ {"ブブ" , "3歳" , "メス"} ,
110
+
111
+ {"ペロ" , "1歳" , "メス"} ,
112
+
113
+ {"ルル" , "14歳" , "オス"} ,
114
+
115
+ {"モモ" , "10歳" , "メス"} ,
116
+
117
+ {"ポチ" , "6歳" , "オス"} ,
118
+
119
+ {"エル" , "2歳" , "メス"}
120
+
121
+ };
122
+
123
+
124
+
125
+ for (int i = 0; i < dogs.length; i++) {
126
+
127
+ // 歳を削除し再格納
128
+
129
+ dogs[i][1] = dogs[i][1].replaceAll("歳", "");
130
+
131
+
132
+
133
+ // 4以上の配列を書き出し
134
+
135
+ if (Integer.parseInt(dogs[i][1]) >= 4) {
136
+
137
+ if (dogs[i][2] == "メス") {
138
+
139
+
140
+
141
+ String adultFemaleDogsList = dogs[i][0] + "、" + dogs[i][1] + "、" + dogs[i][2] ;
142
+
143
+ System.out.println(adultFemaleDogsList) ;
144
+
145
+
146
+
147
+ }
148
+
149
+ }
150
+
151
+ }
152
+
153
+
154
+
155
+
156
+
157
+ }
158
+
159
+ }
160
+
161
+ ```
162
+
163
+ 上のコードはちゃんと動きます。ただ、目的は、
164
+
165
+
166
+
167
+ ①Sring型を扱うArrayList「adultFemaleDogsList」を作成する
168
+
169
+ ②2次元配列dogsから以下の条件にあてはまる名前を抽出し、すべてadultFemaleDogsListに格納する【条件】4歳以上、メス
170
+
171
+ ③adultFemaleDogsListに格納されているすべてのデータをprintlnで表示する
172
+
173
+
174
+
175
+ で、ArrayListが使えていないのですが、二次元配列が絡んだり、新しく配列を作るのではなく別の配列を参照したりするときに(この場合ではdogsの配列)、どのタイミングでどのようにArrayListを作ればよいかわかりません。