こんにちは、kazuです。
本日はMapのValueがすべて一致した時に処理を実行する方法を解説していきたいと思います。
さっそくコードを見てみましょう
Listのvalueを拡張for文で回す
まずは拡張for文を使用したコードを見てみましょう!
// Mapを定義
Map<String, Integer> map = new HashMap<>();
map.put("マップ0番目", 10);
map.put("マップ1番目", 10);
map.put("マップ2番目", 10);
map.put("マップ3番目", 10);
map.put("マップ4番目", 10);
// listのvalueを取得
List<Integer> list = map.values();
// 拡張for文で処理をする
for (Integer value : list) {
// ループで回して一致しないvalueがあればif文に入る
if (value != 10) {
System.out.println("一致しない値がありました!");
return ;
}
}
System.out.println("すべて一致しました!");
return;
1つでも一致したら処理を実行する
次に要素内のvalueが1つでも一致したらif文が処理される実装を見てみましょう!
// Mapを定義
Map<String, Integer> map = new HashMap<>();
map.put("マップ0番目", 10);
map.put("マップ1番目", 9);
map.put("マップ2番目", 8);
map.put("マップ3番目", 7);
map.put("マップ4番目", 6);
Collection<Integer> values = map.values();
// もしMapの中に1つでも10があればif文に入る
if (values.contains(10)) {
System.out.println("一致している値があります!")
}
マップでfor文を回してvalue判定をする
Mapのまま回せるので今回はこちらが一番おすすめです。
// Mapを定義
Map<String, Integer> map = new HashMap<>();
map.put("マップ0番目", 10);
map.put("マップ1番目", 10);
map.put("マップ2番目", 10);
map.put("マップ3番目", 10);
map.put("マップ4番目", 10);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
// keyを出力する
System.out.println("key"+entry.getKey());
// valueを出力する
System.out.println("value"+entry.getValue());
// ループで回して一致しないvalueがあればif文に入る
if(entry.getValue() != 10){
System.out.println("一致しない値がありました!");
return ;
}
}
System.out.println("すべて一致しました!");
return;
for文で回す
一番最初に思い浮かべる処理ではないでしょうか?
// Mapを定義
Map<String, Integer> map = new HashMap<>();
map.put("マップ0番目", 10);
map.put("マップ1番目", 10);
map.put("マップ2番目", 10);
map.put("マップ3番目", 10);
map.put("マップ4番目", 10);
List<Integer> list = map.values();
// for文で処理をする
// list.size() → 要素数を表す
for (int i = 0; i < list.size(); i++) {
// n番目の要素と10を比べて一致しなかったらif文に入る
if (list.get(i) != 10) {
System.out.println("一致しない値がありました!");
return ;
}
}
System.out.println("すべて一致しました!");
return;
最後に
いかがでしたでしょうか?
実務でこのような処理を調べていた時
まとまっている記事が見つからなかったので今回備忘録も兼ねてまとめてみました!
参考になれば幸いです。
最後までご覧いただきありがとうございました!