当if 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); } 我不能说服自己为什么第二个代码比第一个更好。第二个代码肯定会花费更多的时间来运行。 使用第二个代码的唯一原因可能是它提供了更好的可读性。但是,如果该函数被多次调用,那么第二个函数会不会减慢该实用程序调用它的运行时间? 你怎么看待这件事?