统计各点PM2.5的最大值
代码如下:
public class PM_Control {
public static void main(String[] args) {
String total = "东四=423;丰台花园=378;天坛=406;海淀区万柳=322;"
+ "官员=398;通州=406;昌平镇=366;怀柔镇=248;定陵=306;"
+ "前门=231;永乐店=422;古城=368;昌平镇=268;怀柔镇=423;"
+ "定陵=267;前门=377;永乐店=299;秀水街=285";
String[] arr = total.split("(=|;)") ;
Map<String,Integer> map = new LinkedHashMap<String,Integer>();//key按照链表的形式存入,有顺序
for(int i=0;i<arr.length;i+=2){//arr[i]为站点名 arr[i+1]为对应的PM2.5数据
String name = arr[i];
//将字符穿转换为Integer类型
Integer number = Integer.parseInt(arr[i+1]);
if( !map.containsKey(name) || number > map.get(name) ){
map.put(name, number);
}
}
//遍历map中的name和number输出
Set<Entry<String,Integer>> set = map.entrySet();
for(Entry<String,Integer> en : set){
String name = en.getKey();
Integer i = en.getValue();
System.out.println("监测站点:"+name+"\tPM2.5浓度:"+i);
}
//遍历各站点PM2.5的最大值(遍历value)
Collection<Integer> c = map.values();
for(Integer in : c){
System.out.print(in+" ");
}
System.out.println();
//使用便利Key的方式遍历集合(也可使用遍历key的方式来得到value或遍历键值对)
Set<String> ss = map.keySet();
for(String key : ss){
System.out.println("key:\t"+key+"\tvalue:\t"+map.get(key));
}
}
}
测试结果如下:
监测站点:东四 PM2.5浓度:423
监测站点:丰台花园 PM2.5浓度:378
监测站点:天坛 PM2.5浓度:406
监测站点:海淀区万柳 PM2.5浓度:322
监测站点:官员 PM2.5浓度:398
监测站点:通州 PM2.5浓度:406
监测站点:昌平镇 PM2.5浓度:366
监测站点:怀柔镇 PM2.5浓度:423
监测站点:定陵 PM2.5浓度:306
监测站点:前门 PM2.5浓度:377
监测站点:永乐店 PM2.5浓度:422
监测站点:古城 PM2.5浓度:368
监测站点:秀水街 PM2.5浓度:285
423 378 406 322 398 406 366 423 306 377 422 368 285
key: 东四 value: 423
key: 丰台花园 value: 378
key: 天坛 value: 406
key: 海淀区万柳 value: 322
key: 官员 value: 398
key: 通州 value: 406
key: 昌平镇 value: 366
key: 怀柔镇 value: 423
key: 定陵 value: 306
key: 前门 value: 377
key: 永乐店 value: 422
key: 古城 value: 368
key: 秀水街 value: 285