最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用lamda表達式對list進行求和

 更新時間:2023年06月01日 15:25:22   作者:愛釣魚的Java  
這篇文章主要介紹了如何使用lamda表達式對list進行求和問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

使用lamda表達式對list進行求和

Lambda 表達式是 JDK8 的一個新特性,最近寫項目中求和計算使用的較多,寫篇文章記錄下。

1、實體類List返回Integer類型求和

//根據(jù)id查詢庫存
List<ProductStock> list = productStockMapper.selectList(Wrappers.<ProductStock>lambdaQuery().in(Product::id, idList))
//查詢所有庫存總和
Integer qtySum = list.stream().mapToInt(ProductStock::getStockQty).sum();

2、Integer類型List返回Integer類型求和

//查詢當前所有商品庫存
List<Integer> stockList = productStockMapper.selectStock();
//查詢所有庫存總和
Integer stockSum = stockList .stream().mapToInt(Integer::intValue).sum();

3、實體類List返回Bigdecimal類型求和

//根據(jù)id查詢庫存
List<ProductStock> list = productStockMapper.selectList(Wrappers.<ProductStock>lambdaQuery().in(Product::id, idList))
//查詢所有庫存金額總和
BigDecimal stockAmt = list .stream().map(ProductStock::getStockAmt).reduce(BigDecimal::add).orElse(Bigdecimal.ZERO);

4、BigDecimal類List返回Bigdecimal類型求和

//查詢當前所有商品庫存
List<Bigdecimal> stockList = productStockMapper.selectStock();
//查詢所有庫存金額總和
Bigdecimal stockAmt = stockList.stream().reduce(BigDecimal::add).orElse(Bigdecimal.ZERO);

**注:orElse(Bigdecimal.ZERO)而不是get(),是因為防止返回空(此處如果用get(),在idea中也會有警告)。

最近用到的就這些,后續(xù)用到別的還會再更新!

list與Lamda表達式配合的常用方法

1、刪除所有值為400的元素

list.RemoveAll(e=>e==400);

2、刪除所有能被100整除的元素

list.RemoveAll(e=>e%100==0);

3、求和

int sum=0;
int result = list.ForEach(val=>sum+=val);

4、刪除所有值為400的元素

bool result = list.Exists(e=>e==400)

5、是否所有的元素都等于400

bool result = list.TrueForAll(e=>e==400)

6、返回能被100整除的元素(從前向后找)

var result = list.Find(e=>e%100==0);

6、返回能被100整除的元素(從后向前找)

var result = list.FindLast(e=>e%100==0);

7、返回能被100整除的List

var result = list.FindAll(e=>e%100==0);

8、返回能被100整除的索引(從前向后找)

int result = list.FindIndex(e=>e%100==0);

9、返回能被100整除的索引(從后向前找)

int result = list.FindLastIndex(e=>e%100==0);

10、二分查找(速度較快,它的原理是先把排序好的list分成2分,搜索中點值,發(fā)現(xiàn)值不對,就可以砍掉這個分組,只剩下一半再查找)

list.Sort();//二分查找前先必須先升序排序
int result = list.BinarySearch(e=>e%100==0);

11、對類(引用類型)進行排序(bookList.Sort()),需要類實現(xiàn)IComparable接口

internal class Book : IComparable<Book>
{
?? ?public int ID { get; set; }
?? ?public string Name { get; set; }
?? ?public double Price { get; set; }
?? ?public int CompareTo([AllowNull] Book other)
?? ?{
?? ??? ?if (other == null) return 1;
?? ??? ?return this.ID - other.ID;//返回正數(shù),this>other;返回0,this=other;返回負數(shù),this<other;
?? ?}
?? ?public override string ToString()
?? ?{
?? ??? ?return JsonSerializer.Serialize(this);
?? ?}
?? ?public override bool Equals(object obj)
?? ?{
?? ??? ?if (obj == null) return false;
?? ??? ?Book other = obj as Book;
?? ??? ?if (other.ID == this.ID && other.Name == this.Name && other.Price == this.Price) return true;
?? ??? ?return false;
?? ?}
}

12、對類(引用類型)進行二分查找(bookList.BinarySearch()),只能查找相應對象。如果只查找屬性一致的對象,需重寫Equals()方法,如上所示。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot+Vue前后端分離實現(xiàn)請求api跨域問題

    SpringBoot+Vue前后端分離實現(xiàn)請求api跨域問題

    這篇文章主要介紹了SpringBoot+Vue前后端分離實現(xiàn)請求api跨域問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Java實現(xiàn)簡易購物系統(tǒng)

    Java實現(xiàn)簡易購物系統(tǒng)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡易購物系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java中通過ZipOutputStream類如何將多個文件打成zip

    Java中通過ZipOutputStream類如何將多個文件打成zip

    ZipOutputStream?是Java中用于創(chuàng)建ZIP文件的類,它是?java.util.zip?包中的一部分,通過使用?ZipOutputStream?,可以將多個文件壓縮到一個ZIP文件中,這篇文章主要介紹了Java中(ZipOutputStream)如何將多個文件打成zip,需要的朋友可以參考下
    2023-09-09
  • 詳解Java利用實現(xiàn)對稱加密(DES、3DES、AES)

    詳解Java利用實現(xiàn)對稱加密(DES、3DES、AES)

    本篇文章主要介紹了Java利用實現(xiàn)對稱加密(DES、3DES、AES),具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • Java學習常用包(類)之java.util包詳解

    Java學習常用包(類)之java.util包詳解

    這篇文章主要介紹了Java學習常用包(類)之java.util包的相關資料,Java.util包是Java標準類庫的重要組成部分,包含集合框架、日期時間類、事件模型、隨機數(shù)生成器等實用工具類,集合框架提供了多種數(shù)據(jù)結構和算法,需要的朋友可以參考下
    2024-10-10
  • Java Scanner類及其方法使用圖解

    Java Scanner類及其方法使用圖解

    這篇文章主要介紹了Java Scanner類及其方法使用圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Java實例講解多態(tài)數(shù)組的使用

    Java實例講解多態(tài)數(shù)組的使用

    本文章向大家介紹Java多態(tài)數(shù)組,主要包括Java多態(tài)數(shù)組使用實例、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下
    2022-05-05
  • java實現(xiàn)斗地主游戲

    java實現(xiàn)斗地主游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)斗地主游戲,洗牌、發(fā)牌、看牌,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 通過代碼實例解析JAVA類生命周期

    通過代碼實例解析JAVA類生命周期

    這篇文章主要介紹了通過代碼實例解析JAVA類生命周期,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 完美解決docx4j變量替換的問題

    完美解決docx4j變量替換的問題

    這篇文章主要介紹了完美解決docx4j變量替換的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論

昭苏县| 宣汉县| 和静县| 新巴尔虎右旗| 白城市| 彰武县| 鸡西市| 奈曼旗| 拜泉县| 抚州市| 达拉特旗| 兴安盟| 温宿县| 满城县| 西林县| 灌南县| 通海县| 武义县| 汪清县| 丰台区| 扶沟县| 姜堰市| 莱阳市| 临潭县| 宁乡县| 拜城县| 宝山区| 吴川市| 闸北区| 新郑市| 长海县| 博爱县| 陇西县| 荆州市| 武邑县| 永新县| 禄劝| 凌云县| 广西| 台山市| 承德市|