前提・実現したいこと
src内にあるcheckメソッドを呼び出した時に、
checkメソッドの引数の組み合わせが同じだった場合のみ”引数の組み合わせが重複しています”と表示させるのが目的。
src
package map; import java.util.HashMap; public class One { static HashMap<String, String> check = new HashMap<>(); public static void main(String[] args) { check("1", "ばなな"); check("2", "りんご"); check("2", "みかん"); check("2", "りんご");//値の組み合わせが重複する check("3", "ばなな"); check("3", "りんご"); check("1", "りんご"); } static void check(String No, String fruit) { if (check.containsKey(No) && check.containsValue(fruit)) { System.out.println("引数の組み合わせが重複しています"); return; } check.put(No, fruit); System.out.println("No" + No + "," + fruit); } }
理想の結果
No1,ばなな No2,りんご No2,みかん 引数の組み合わせが重複しています No3,ばなな No3,りんご No1,りんご
実際の結果
No1,ばなな No2,りんご No2,みかん No2,りんご No3,ばなな 引数の組み合わせが重複しています 引数の組み合わせが重複しています
問題点
・現状引数の組み合わせが重複した場合にif文がtrueになるという条件を満たしていない
・HashMapの特性上keyの重複ができないため、「No2,ばなな」「No2,りんご」の二つをチェック
することができない。
教えてほしいこと
・理想の結果と同じ結果を出力する。
・HashMap以外の方法で解決できるのか。
回答2件
あなたの回答
tips
プレビュー