java- 特别多的switch如何优化

如图图片说明

http://www.tuicool.com/articles/eqm2e2I

 Map<integer,integer> dic=new HashMap<>();
 dic.put(1,10);
  dic.put(1,15);
     dic.put(1,20);
      dic.put(1,30);


        int times;
        ......
        map.put("times",times+1);
        map.put("value",dic.get(times));
 void checkIn(int times, Map<String, Integer> map) {
     map.put("times", times + 1);
         if (times == 1) {
            map.put("value", 10);
        } else if (times == 2) {
            map.put("value", 15);
        } else {
            map.put("value", (times - 1) * 10);
        } 
        // 其它限制
 }

看了一下你的代码,总结了一下规律,是不是每次其实就两句话就搞定了
map.put("times",times+1);
map.put("value",(times+1)*5);

不对,不好意思,看错了

case值提取出一个枚举来,定一个抽象类,在每个枚举下面自己实现

ex1.

int [] timesArr = [2,3,4,5,6];
int [] valueStr = [2,3,4,6,8];

map.put("times",timesArr[times-1]);
map.put("value",valueStr[times-1]*5);

ex2.

swich(times) {
    case 1:
    case 2:
    case 3:
        map.put("times",times+1);
        map.put("value",times*5);
    break;
    case 4:
    case 5:
    case 6:
        map.put("times",times+1);
        map.put("value",times*10-10);
        break;

        ...

    default:
    break;
}