JDK8 Lamdba表達式轉換成Map,value為null問題


// 將list轉換成Map類型
Map<String, String> map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName));
// 如果報 map里的value空指針異常,則需要在value,也就是toMap()的第二個參數進行空(null)值的判斷邏輯;例如:也就是 Person::getName 改成 p -> p.getName()==null?"":p.getName()就可以解決value為null問題 // <Person, String, String> Collector<Person, ?, Map<String, String>> java.util.stream.Collectors.toMap(Function<? super Person, ? extends String> keyMapper, Function<? super Person, ? extends String> valueMapper, BinaryOperator<String> mergeFunction) // toMap()第三個參數是當有重復的Key時,會執行這段邏輯,傳入2個參數,第一個參數是已經存在Map的value值,第二個是即將覆蓋的value值,最終返回哪個值為准

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM