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