回答編集履歴

2

Stream APIでの検索方法について追記

2019/12/12 05:47

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -201,3 +201,45 @@
201
201
  C>
202
202
 
203
203
  ```
204
+
205
+
206
+
207
+ ---
208
+
209
+ **追記しました: 2019-12-12 14:46**
210
+
211
+
212
+
213
+ `ArrayList`の場合、リスト中のインスタンスを検索する時にループなどで`ArrayList#get`で要素を逐一見ていく必要があるかもしれません。Stream APIを使うとよりスマートなコードとなる場合もあります。
214
+
215
+ ```Java
216
+
217
+ import java.util.List;
218
+
219
+ import java.util.ArrayList;
220
+
221
+ import java.util.stream.Collectors;
222
+
223
+
224
+
225
+ ...省略
226
+
227
+
228
+
229
+ // Stream APIを使って指定の要素(例:nameフィールドが"name04")のインスタンスを取得
230
+
231
+ List<Food> foods = list.stream().filter(elem -> elem.getName().equals("name04")).collect(Collectors.toList());
232
+
233
+ if (foods.size() == 1) {
234
+
235
+ Food target = foods.get(0);
236
+
237
+ target.setName("NewNameFor#4");
238
+
239
+ target.setPriceNum(444);
240
+
241
+ target.setOrderNum(4444);
242
+
243
+ }
244
+
245
+ ```

1

assertについて注記

2019/12/12 05:47

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -126,8 +126,6 @@
126
126
 
127
127
  dump(list);
128
128
 
129
-
130
-
131
129
  }
132
130
 
133
131
 
@@ -156,7 +154,7 @@
156
154
 
157
155
 
158
156
 
159
- 上記コードの実行結果です。リスト中の`list[2]`のインスタンスに影響があるのが分かります。
157
+ 上記コードの実行結果です。リスト中の`list[2]`のインスタンスに影響があるのが分かります。尚、`java`コマンド実行時に"-ea"オプションを付け、コード中の`assert`診断が有効になるようにしています。
160
158
 
161
159
  ```CMD
162
160
 
@@ -174,7 +172,7 @@
174
172
 
175
173
 
176
174
 
177
- C>java t1
175
+ C>java -ea t1
178
176
 
179
177
  start t1.main
180
178