ฉันมีMap<String,List<String>>
และต้องการที่จะกลายเป็นMap<String,List<Long>>
เพราะแต่ละคนString
ในรายการแสดงถึงLong
:
Map<String,List<String>> input = ...;
Map<String,List<Long>> output=
input.entrySet()
.stream()
.collect(toMap(Entry::getKey, e -> e.getValue().stream()
.map(Long::valueOf)
.collect(toList()))
);
ปัญหาหลักของฉันคือแต่ละคนString
อาจไม่ได้แสดงอย่างถูกต้อง a Long
; อาจมีปัญหาบางอย่าง Long::valueOf
อาจเพิ่มข้อยกเว้น หากเป็นกรณีนี้ฉันต้องการคืนค่าว่างหรือไม่Map<String,List<Long>>
เพราะฉันต้องการทำซ้ำหลังจากผ่านoutput
แผนที่นี้ แต่ฉันไม่สามารถยอมรับการแปลงผิดพลาดได้ ไม่แม้แต่คนเดียว มีความคิดเกี่ยวกับวิธีที่ฉันสามารถคืนเอาต์พุตว่างในกรณีที่ String ไม่ถูกต้อง -> การแปลงยาว?
LongStream
ถ้าคุณวางแผนที่จะลบempty
ผลลัพธ์)