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

翎野君發表於2024-04-24

可以使用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

相關文章