天天看点

统计各点PM2.5的最大值

统计各点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