else else構造がより適切な時間で仕事をすることができるときに、(関数で)HashMapを使用して(キーに対して)返す値を決定する必要があるのはなぜですか?
私が最近大企業で働いていたときに、プログラマーがこのコーディングスタイルに従っていることに気づきました。 入力がAの場合は12、入力がBの場合は21、入力がCの場合は45を返す関数があるとします。 だから私は関数のシグネチャを次のように書くことができます: int foo(String s){ if(s.equals("A")) return 12; else if(s.equals("B")) return 21; else if(s.equals("C")) return 45; else throw new RuntimeException("Invalid input to function foo"); } しかし、コードレビューで、関数を次のように変更するように求められました。 int foo(String s){ HashMap<String, Integer> map = new HashMap<String, Integer>(); map.put("A", 12); map.put("B", 21); map.put("C", 45); return map.get(s); } 2番目のコードが最初のコードよりも優れている理由を私は納得できません。2番目のコードの実行には、間違いなく時間がかかります。 2番目のコードを使用する唯一の理由は、コードが読みやすくなることです。しかし、関数が何度も呼び出される場合、2番目の関数はそれを呼び出すユーティリティの実行時間を遅くしませんか? これについてどう思う?