java lambda list集合中對象某屬性重複,只取第一個對象

可以使用Java 8的流式編程和Lambda表達式來實現這個需求:

List<MyObject> list = getList(); // 獲取List集合
Map<String, MyObject> map = list.stream()
        .collect(Collectors.toMap(MyObject::getProperty, Function.identity(), (o1, o2) -> o1));
List<MyObject> resultList = new ArrayList<>(map.values());

其中,MyObject是具體的對象類,getProperty()是獲取屬性的方法。上述代碼中,使用stream()將List轉換爲流,然後使用toMap()方法將元素按照屬性值作爲key,對象本身作爲value存入Map中,如果有重複屬性,則使用第一個對象。最後,將Map的values取出來,存入新的List中,即可得到只取第一個對象的List集合。

本篇文章如有幫助到您,請給「翎野君」點個贊,感謝您的支持。

首發鏈接:https://www.cnblogs.com/lingyejun/p/18156481

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