คำถามติดแท็ก collectors

12
Java 8 NullPointerException ใน Collector.toMap
Java 8 จะส่งCollectors.toMapa NullPointerExceptionหากค่าใดค่าหนึ่งเป็น 'null' ฉันไม่เข้าใจพฤติกรรมนี้แผนที่สามารถมีพอยน์เตอร์พอยน์เตอร์เป็นค่าโดยไม่มีปัญหาใด ๆ มีเหตุผลที่ดีหรือไม่ที่ค่าต่างๆจะไม่เป็นค่าว่างCollectors.toMap? นอกจากนี้ยังมีวิธีที่ดีของ Java 8 ในการแก้ไขปัญหานี้หรือฉันควรเปลี่ยนกลับเป็น old old for loop หรือไม่? ตัวอย่างของปัญหาของฉัน: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; class Answer { private int id; private Boolean answer; Answer() { } Answer(int id, Boolean answer) { this.id = id; this.answer = answer; } …

9
Java8: HashMap <X, Y> ถึง HashMap <X, Z> โดยใช้ Stream / Map-Reduce / Collector
ฉันรู้วิธีการ "แปลง" Java ง่ายๆListจากY-&gt; Zคือ: List&lt;String&gt; x; List&lt;Integer&gt; y = x.stream() .map(s -&gt; Integer.parseInt(s)) .collect(Collectors.toList()); ตอนนี้ฉันต้องการทำแบบเดียวกันกับแผนที่กล่าวคือ: INPUT: { "key1" -&gt; "41", // "41" and "42" "key2" -&gt; "42 // are Strings } OUTPUT: { "key1" -&gt; 41, // 41 and 42 "key2" -&gt; 42 // are Integers } การแก้ปัญหาไม่ควรจะ จำกัด-&gt;String …


1
มีนักสะสมที่รวบรวมไปยังชุดรักษาคำสั่งซื้อหรือไม่?
Collectors.toSet()ไม่รักษาระเบียบ ฉันสามารถใช้ Lists แทนได้ แต่ฉันต้องการระบุว่าคอลเล็กชันผลลัพธ์ไม่อนุญาตให้มีการทำซ้ำองค์ประกอบซึ่งเป็นSetอินเทอร์เฟซสำหรับอะไร
107 java  java-8  collectors 

5
วิธีสร้างแผนที่ด้วยค่าที่แตกต่างจากแผนที่ (และใช้ปุ่มขวาโดยใช้ BinaryOperator)
ฉันมีแผนที่Map&lt;K, V&gt;และเป้าหมายของฉันคือการลบค่าที่ซ้ำกันและเอาท์พุทโครงสร้างเดียวกันMap&lt;K, V&gt;อีกครั้ง ในกรณีที่พบค่าที่ซ้ำกันจะต้องมีการเลือกหนึ่งคีย์ ( k) จากสองคีย์ ( k1และk1) ที่เก็บค่าเหล่านี้ด้วยเหตุผลนี้ให้ถือว่ามีการBinaryOperator&lt;K&gt;ให้kจากk1และk2พร้อมใช้งาน ตัวอย่างอินพุตและเอาต์พุต: // Input Map&lt;Integer, String&gt; map = new HashMap&lt;&gt;(); map.put(1, "apple"); map.put(5, "apple"); map.put(4, "orange"); map.put(3, "apple"); map.put(2, "orange"); // Output: {5=apple, 4=orange} // the key is the largest possible ความพยายามของฉันใช้Stream::collect(Supplier, BiConsumer, BiConsumer)เป็นบิตเงอะงะมากและมีการดำเนินงานที่ไม่แน่นอนเช่นMap::putและMap::removeที่ฉันต้องการจะหลีกเลี่ยง: // // the key is the largest …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.