जोड़ने के बाद सॉर्ट किए गए ट्रेमैप को कैसे रखा जाए, मेरे पास Account
कक्षा में compareTo
द्वारा क्रमबद्ध एक ट्रेमैप है।कुंजी-मान
जब मैं ट्रेमैप का उपयोग करता हूं, तो इसे सॉर्ट किया जाता है लेकिन जब मैं इस फ़ंक्शन का उपयोग करने का प्रयास करता हूं (किसी विशिष्ट खाते में पैसा जोड़ने के लिए), यह केवल तभी काम करता है जब मैं जो मूल्य बदलता हूं वह ट्रेमैप में पहला या अंतिम नहीं होता है।
यहां कोड है। मैं क्या गलत कर रहा हूं?
public static void deposit(TreeMap<Account,MyLinkedList<Customer>> map){
boolean flag = false;
int num ;
int amount;
System.out.println("please enter account number");
num = s.nextInt();
//for(Iterator<Account> i = map.;i.hasNext())
for(Map.Entry<Account, MyLinkedList <Customer>> entry : map.entrySet()){
if(entry.getKey().getAccNumber() == num){
flag = true;
System.out.println("Please enter amount");
amount = s.nextInt();
entry.getKey().setAccBalance(entry.getKey().getAccBalance()+amount);
Account temp = entry.getKey();
MyLinkedList<Customer> tempList = entry.getValue();
map.remove(entry.getKey());
map.put(temp, tempList);
break;
}
}
if(flag == false) {
System.out.println("Account doesn't exist");
return;
}
}
}
सबसे पहले, उत्तर के लिए धन्यवाद। मैं आदेश निर्धारित करने के लिए खाता शेष राशि का उपयोग कर रहा हूं, इसलिए मैंने सोचा कि मुझे फिर से हटाना होगा और जोड़ना होगा। और मुझे इस नए मानचित्र को कैसे लागू करना चाहिए? समारोह के अंदर? – KLTR
@RoyLevy हां, आपको फिर से निकालना और जोड़ना होगा। नए मानचित्र के बारे में, यदि आप इसे हर बार विधि कहलाते हैं तो यह कुशल नहीं होगा। आपको इसे अपनी विधि के लिए दूसरे तर्क के रूप में पारित करने पर विचार करना चाहिए। – Eran
लेकिन मूल्य जोड़ने के लिए मैं नए हैशपैप का उपयोग कैसे करूं? मैं समझता हूं कि मैं इसे प्राप्त करने के साथ ओ (1) द्वारा प्राप्त कर सकता हूं, लेकिन मैं हैशपैप से मूल्य कैसे जोड़ता हूं (क्योंकि वे कुंजी एक पूर्णांक है) माफ करना मैं एक छात्र हूं, शायद मैं कुछ मूर्ख सवाल पूछूं :) – KLTR