国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java中對于List<Map>對象中的相關操作(排序、最大值、最小值、和、平均數(shù))

這篇具有很好參考價值的文章主要介紹了Java中對于List<Map>對象中的相關操作(排序、最大值、最小值、和、平均數(shù))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、對List< Map >中指定鍵對應的值進行排序
		// 創(chuàng)建List對象
        List<Map<String,Object>> list = new ArrayList<>();
        Random random = new Random();
        // 循環(huán)添加數(shù)據(jù)
        for (int i = 0; i < 10; i++) {
            Map<String,Object> map = new HashMap<>();
            map.put("id",1);
            map.put("name","test"+i);
            map.put("age",random.nextInt(100));
            list.add(map);
        }
        System.out.println("排序前:---");
        list.forEach(System.out::println);
        // 排序的主要邏輯
        list.sort((o1,o2) -> {
            Integer age = Integer.valueOf(o1.getOrDefault("age",Integer.MIN_VALUE).toString());
            Integer age1 = Integer.valueOf(o2.getOrDefault("age",Integer.MIN_VALUE).toString());
//            return age.compareTo(age1); // 升序
            return age1.compareTo(age); // 降序
        });
        System.out.println("排序后:---");
        list.forEach(System.out::println);

注意:
(1)、升序和降序的主要區(qū)別就是方法中調用compareTo方法的對象不同,其余沒有變化
(2)、Map集合的getOrDefault方法是為了防止出現(xiàn)空指針異常(如果你的數(shù)據(jù)都不為空則可以直接用get方法進行取值)

二、獲取List< Map >中的指定鍵對應的最大值
(1)、可以按上述方法進行降序排序后獲取第一個值
(2)、繼上面的數(shù)據(jù),使用jdk1.8的stream流進行獲取最大值
// 若數(shù)據(jù)中不存在null值
int age = list.stream().mapToInt(m -> (Integer) m.get("age")).max().getAsInt();
// 若數(shù)據(jù)中可能存在null值
int maxAge = list.stream().mapToInt(m -> (Integer) m.getOrDefault("age",Integer.MIN_VALUE)).max().getAsInt();
三、獲取List< Map >中的指定鍵對應的最小值
(1)、按照第一種排序方法進行升序排序后獲取第一個值
(2)、繼上面的數(shù)據(jù),使用jdk1.8的stream流進行獲取最小值
// 若數(shù)據(jù)中不存在null值
int age = list.stream().mapToInt(m -> (Integer) m.get("age")).min().getAsInt();
// 若數(shù)據(jù)中可能存在null值
int age = list.stream().mapToInt(m -> (Integer) m.getOrDefault("age",Integer.MAX_VALUE)).min().getAsInt();

最大最小值獲取注意事項:
(1)、獲取最大最小值主要就是更換了其方法 max()和min()
(2)、獲取最大最小值時Map對象的getOrDefault方法中的默認值記得更換,獲取最大值時:Integer.MIN_VALUE,獲取最小值時:Integer.MAX_VALUE,若數(shù)據(jù)中該字段(鍵)沒有空值則直接使用get方法即可
文章來源地址http://www.zghlxwxcb.cn/news/detail-598038.html

四、獲取List< Map >中的指定鍵對應的和以及平均數(shù)
// 獲取和
// 數(shù)據(jù)中可能存在null值
int age = list.stream().mapToInt(m -> (Integer) m.getOrDefault("age",0)).sum();
// 數(shù)據(jù)中不會出現(xiàn)null值
int age = list.stream().mapToInt(m -> (Integer) m.get("age")).sum();
// 獲取平均值
Double avgAge = list.stream().mapToInt(m -> (Integer) m.getOrDefault("age",0)).average().getAsDouble();
// 數(shù)據(jù)中不會出現(xiàn)null值
Double age = list.stream().mapToInt(m -> (Integer) m.get("age")).average().getAsDouble();

到了這里,關于Java中對于List<Map>對象中的相關操作(排序、最大值、最小值、和、平均數(shù))的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包