java8 利用lambda表達式對map集合求和,或平均值、最大值、最小值

直接看例子:

IntSummaryStatistics statistics = (IntSummaryStatistics) list
    .stream()
        .collect(
	    Collectors.summarizingInt(
                 e->Integer.valueOf( ((Map) e).get("sum").toString() )));

 

以下是完整代碼:

public static void main(String[] args) {
	Map map1 = new HashMap();
	map1.put("id", "123");
	map1.put("sum", 1);
	Map map2 = new HashMap();
	map2.put("id", "123");
	map2.put("sum", 2);
	Map map3 = new HashMap();
	map3.put("id", "123");
	map3.put("sum", 3);
	Map map4 = new HashMap();
	map4.put("id", "123");
	map4.put("sum", 4);
	List list = new ArrayList();
	list.add(map1);
	list.add(map2);
	list.add(map3);
	list.add(map4);
	IntSummaryStatistics sumcc = (IntSummaryStatistics) list.stream().collect(
			Collectors.summarizingInt(e->Integer.valueOf( ((Map) e).get("sum").toString() )));
}

擴展:我們用得到的結果 .get  會發現,如圖,可以直接獲取平均值,最大最小值

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章