आप अमरूद ऐसा करने की जरूरत नहीं है:
List<Person> people = ...
Map<Name, Person> peopleByName = new HashMap<>();
for (Person person : people) {
// Name is a simple value class with equality based on its fields
Name name = new Name(person.getFirstName(), person.getLastName());
Person firstPersonWithName = peopleByName.get(name);
if (firstPersonWithName == null) {
peopleByName.put(name, person);
} else {
// or whatever you do to mark a duplicate
person.setDuplicateOf(firstPersonWithName);
}
}
जिसके अनुसार, यदि आप एक Map
के बजाय एक अमरूद Table
इस्तेमाल कर सकते हैं और Name
बनाने के लिए की आवश्यकता होगी, से बचने के ... पंक्ति के रूप में पहले नाम का उपयोग कुंजी और कॉलम कुंजी के रूप में अंतिम नाम, कहते हैं।
एक और विकल्प Multimaps.index
का उपयोग करके अपनी सूची में सभी लोगों को सूचीबद्ध करने के लिए उपयोग करना होगा। फिर किसी विशेष नाम पर मैप किए गए लोगों की हर सूची के लिए, पहला व्यक्ति आपकी सूची से उस नाम वाला पहला व्यक्ति होगा और अन्य डुप्लीकेट होंगे।
आप स्पष्ट कर सकते हैं तुम क्या मतलब है "वस्तु की पहचान यह का डुप्लिकेट है "- मुझे लगता है कि आपका मतलब है कि पहला आइटम" असली "आइटम है, और बाद के आइटम डुप्लिकेट हैं? –