में retainAll का उपयोग करके कई सूचियों का छेड़छाड़ प्राप्त करें मुझे जावा पर कई सूचियों का चौराहे पाने में परेशानी हो रही है। क्या मैं कर रहा हूँ यह है: मैं (कहना देता है) पूर्णांक संख्या के 3 सूचियाँ:जावा
सूची 1: [2, 2, 2, 2, 5, 5]
सूची 2: [2 , 2, 103]
सूची 3: [2, 431]
मैं शेष सूचियों में से प्रत्येक का उपयोग कर पहले एक करने के लिए retainAll लागू करने हूँ:
list1.retainAll(list2);
list1.retainAll(list3);
और मैं इस हो रही है परिणाम:
List1: [2, 2, 2, 2]
लेकिन मैं इस एक पाने के लिए उम्मीद थी:
List1: [2]
... केवल तत्व सब के बाद से सूचियों शेयर एक 2 और नहीं चार 2.
है मैं जानता हूँ कि यह शायद retainAll समारोह की अपेक्षित व्यवहार है, लेकिन मैं परिणाम मैं उपर्युक्त प्राप्त करने की आवश्यकता।
कोई मदद?
संपादित करें: डुप्लीकेट को अस्वीकार करने के लिए हैशसेट का उपयोग करना या तो चाल नहीं करेगा। इस मामले में, उदाहरण के लिए:
सूची 1: [2, 2, 2, 2, 5, 5]
सूची 2: [2, 2, 103]
सूची 3: [2 , 2, 2, 431]
मैं का एक परिणाम प्राप्त करने की आवश्यकता:
सूची 1: [2, 2]
के बजाय (के बाद से सभी सूचियों 2 के कम से कम एक जोड़ी है)
सूची 1: [2]
आपको सबसे पहले स्पष्ट रूप से यह बताने की आवश्यकता होगी कि आप क्या उम्मीद करते हैं। क्या आप उन मानों को बनाए रखना चाहते हैं जो समान हैं और दोनों सूचियों में एक ही इंडेक्स पर हैं? या आप उन दोनों तत्वों को रखना चाहते हैं जो दोनों सूचियों में मौजूद हैं, और केवल दूसरी सूची में समान संख्या रखें? या कुछ और? –