मैं दो मैप्स कि वस्तुओं के एक ही प्रकार के होते हैं है:संघ नक्शे
Map<String, TaskJSO> a = new HashMap<String, TaskJSO>();
Map<String, TaskJSO> b = new HashMap<String, TaskJSO>();
public class TaskJSO { String id; }
नक्शा कुंजी "आईडी" गुण हैं।
a.put(taskJSO.getId(), taskJSO);
मैं के साथ एक सूची प्राप्त करने के लिए करना चाहते हैं: "मानचित्र एक" कि "ख मानचित्र" + सभी मूल्यों में सभी मान "मानचित्र ख" नहीं कर रहे हैं।
सबसे तेज़ इस ऑपरेशन को करने का तरीका क्या है?
धन्यवाद
संपादित करें: comparaison आईडी द्वारा किया जाता है। इसलिए, दो कार्यजेएसओ को बराबर माना जाता है यदि उनके पास एक ही आईडी है (बराबर विधि ओवरराइड है)।
मेरा इरादा यह जानना है कि इस ऑपरेशन को प्रदर्शन बिंदु से करने का सबसे तेज़ तरीका कौन सा है।
Map<String, TaskJSO> ab = new HashMap<String, TaskJSO>(a);
ab.putAll(b);
ab.values()
या मैं (के रूप में निशांत ने सुझाव दिया) एक सेट का उपयोग करता है, तो बजाय:
Set s = new Hashset();
s.addAll(a.values());
s.addAll(b.values());
उदाहरण के लिए, कोई फर्क अगर मैं एक नक्शे में "comparaison" करते हैं (के रूप में पीटर ने सुझाव दिया है)
शायद इस पर निर्भर करता है कि आप किस जावा कार्यान्वयन का उपयोग कर रहे हैं। – Thomas
मानचित्र 'ए' में एक' टास्कजेएसओ 'के लिए' आईडी 'मानचित्र और मानचित्र' बी' में एक अलग 'टास्कजेएसओ' हो सकता है? – dkarp
@dkarp हां, एक ही आईडी मैप ए और मैप बी में दो अलग-अलग टास्कजेएसओ को मैप कर सकती है (वे एक ही इकाई के विभिन्न संस्करणों को स्टोर करते हैं) –