switch
我们希望编写一个函数,统计一个 List 列表中的数值分布,其中 1 是 small,2 是 middle, 3 是 big,3以上都是 huge 。列表中的数值全部都在 1 到 5之间,编写程序在对象的 small, middle, big, huge 四个字段 保存正确的统计结果
public class Counter{
int small = 0;
int middle = 0;
int bug = 0;
int huge = 0;
//... getter methods
public void read(List<Integer> numbers){
for(var value: numbers){
switch(value){
case 1:
small += 1;
break;
case 2:
middle += 1;
break;
case 3:
big += 1;
break;
default:
huge +=1;
}
}
}
}
private Map<String, Integer> count(List<Integer> list) {
Map<String, Integer> res = new HashMap<>();
for (Integer val : list) {
switch (val) {
case 1:
res.merge("small", 1, Integer::sum);
break;
case 2:
res.merge("middle", 1, Integer::sum);
break;
case 3:
res.merge("big", 1, Integer::sum);
break;
default:
res.merge("huge ", 1, Integer::sum);
}
}
return res;
}