जेडीके 8 ईए अब बाहर है, और मैं सिर्फ लैम्ब्डा और नए स्ट्रीम एपीआई में उपयोग करने की कोशिश कर रहा हूं। मैं समानांतर धारा के साथ एक सूची को सॉर्ट करने की कोशिश की है, लेकिन परिणाम हमेशा गलत है:जावा 8 समांतरस्ट्रीम() सॉर्ट किए गए()
import java.util.ArrayList;
import java.util.List;
public class Test
{
public static void main(String[] args)
{
List<String> list = new ArrayList<>();
list.add("C");
list.add("H");
list.add("A");
list.add("A");
list.add("B");
list.add("F");
list.add("");
list.parallelStream() // in parallel, not just concurrently!
.filter(s -> !s.isEmpty()) // remove empty strings
.distinct() // remove duplicates
.sorted() // sort them
.forEach(s -> System.out.println(s)); // print each item
}
}
उत्पादन:
C
F
B
H
A
नोट है कि हर बार उत्पादन अलग है। मेरे सवाल है, क्या यह एक बग है? या समानांतर में एक सूची को सॉर्ट करना संभव नहीं है? यदि हां, तो जावाडॉक यह क्यों नहीं बताता है? आखिरी सवाल, क्या कोई अन्य ऑपरेशन है जिसका उत्पादन धारा प्रकार के आधार पर भिन्न होगा?
सॉर्टिंग के बाद डुप्लीकेट को हटाने के लिए शायद बेहतर होगा। – Ingo