शुरुआत से पहले, मुझे लगता है कि इस प्रश्न का एक बहुत ही सरल जवाब है कि मैं बस देख रहा हूं। मुझे लगता है कि हाथ पर सवाल पर कुछ और आंखें मेरी समस्या को काफी जल्दी बता सकती हैं।मैं डुप्लिकेट ऑब्जेक्ट्स को दो अलग ArrayLists से कैसे हटा सकता हूं?
मेरे पास दो ArrayLists हैं जिन्हें मैं तुलना करना चाहता हूं और उनमें से प्रत्येक से डुप्लिकेट को हटाना चाहता हूं। पहले ArrayList
पुरानी जानकारी के ArrayList
है जहां दूसरे ArrayList
में नई जानकारी है।
तो
ArrayList<Person> contactList = new ArrayList();
contactList.add(new Person("Bob");
contactList.add(new Person("Jake");
contactList.add(new Person("Joe");
ontactList.add(new Person("Rob");
ArrayList<Person> updatedContactList = new ArrayList();
updatedContactList.add(new Person("Bob");
updatedContactList.add(new Person("Jake");
updatedContactList.add(new Person("Joe");
updatedContactList.add(new Person("Phil");
मेरे Person
वर्ग बहुत सरल है की तरह, इस उदाहरण
public class Person {
private String name;
public Person(String a_name) {
name = a_name;
}
public String getName() {
return name;
}
}
के लिए पूरी तरह बनाया तो, ऊपर के उदाहरण का उपयोग करते हुए, मैं उन सभी डुप्लीकेट निकालना चाहते हैं। यदि संभव हो तो मैं इसे केवल दो ArrayLists पर रखने की कोशिश कर रहा हूं, लेकिन अगर मुझे करना है तो मैं ArrayLists में से एक का गहरा क्लोन करने के लिए तैयार हूं।
तो मैं जिसके परिणामस्वरूप ArrayList
एक बार तुलना
यहाँ किया जाता है उस में निम्न जानकारी शामिल करनी है कोड मैं एक साथ रख दिया
for(int i = 0; i < contactList.size(); i++) {
for(int j = 0; j < updatedContactList.size(); j++) {
if(contactList.get(i).getName().equals(updatedContactList.get(j).getName())) {
//removed friends
contactList.remove(contactList.get(i));
//new friends ---- only one at a time works
//updatedContactList.remove(updatedContactList.get(j));
}
}
}
मैं केवल सक्षम हूँ चाहते हैं उपरोक्त लूप में ArrayLists में से किसी एक व्यक्ति को निकालने के लिए अन्यथा मुझे गलत परिणाम मिलते हैं।
तो मेरा सवाल यह है कि, क्या ऐरेलिस्टिस्टों के डुप्लिकेट तत्वों को हटाने का कोई आसान तरीका है? यदि हां, तो मैं इसके बारे में कैसे जा सकता हूं।
मुझे एहसास है कि मैं शायद ArrayList
अद्यतन गहरा क्लोन कर सकता हूं और केवल उस वस्तु को हटा सकता हूं, लेकिन मुझे आश्चर्य है कि इसे क्लोन किए बिना कोई रास्ता है या नहीं।
मुझे यह भी एहसास है कि मैं बस सभी तत्वों को एक सेट में रख सकता हूं और यह डुप्लिकेट को हटा देगा, लेकिन मैं 'हटाया' और 'नया' व्यक्ति वस्तुओं को अलग रखना चाहता हूं।
मुझे लगता है कि अलग-अलग सूचियों में डुप्लिकेट नहीं होंगे, सही? – arshajii
@arshajii एक बार तुलना की जाने के बाद, प्रत्येक सूची में उनमें से दोनों के बीच कोई डुप्लीकेट नहीं होना चाहिए। एक ऐरेलिस्ट में 'व्यक्ति' को हटा दिया जाएगा और अन्य ऐरेलिस्ट में केवल नई 'व्यक्ति' वस्तुएं होंगी। – WilliamShatner
मेरा मतलब है कि पहले से ही, दो सूचियों में कुछ भी किया जाता है। उदाहरण के लिए, आप 'संपर्क सूची' में दो 'बॉब' नहीं कर सकते हैं, है ना? – arshajii