舉個栗子,若是我要輸出數字對應的中文描述,我能夠用這種方法來寫:編程
int num=2; if (num==1){ System.out.println("一"); } else if (num==2){ System.out.println("二"); } else if (num==3){ System.out.println("三"); } else if (num==4){ System.out.println("四"); } else if (num==5){ System.out.println("五"); }else { System.out.println("其它"); }
可是若是有一百個數字,難道你要寫一百次的if語句麼??因此能夠優化成下面這樣的表驅動:函數
public static String ConvertNumber(int num){ Map<Integer,String> map=new HashMap<Integer,String>(); map.put(1,"一"); map.put(2,"二"); map.put(3,"三"); map.put(4,"四"); map.put(5,"五"); for (Integer integer:map.keySet()){ if (integer==num){ return map.get(integer); } } return "其它"; }
而後在Main函數中直接調用該方法System.out.println(ConvertNumber(num));就能夠啦!優化
顯而易見的是,第二種數據驅動的編程方式更爲簡練,它將數據和邏輯剝離,拓展性好。spa
好比我想添加一個6對應的六,只要在代碼的數據段中添加map.put(6,"六");就能夠了。code