ben Account
sınıfta bir compareTo
göre sıralanır bir treemap sahip ekledikten sonra sıralanan bir treemap tutmak nasıl.anahtar değerlerini
Treemap'ı başlattığımda, sıralanır ancak bu işlevi (belirli bir hesaba para eklemek için) kullanmayı denediğimde, yalnızca değiştirdiğim değerler treemap'teki ilk veya sonuncu değilse çalışır.
İşte kod. Neyi yanlış yapıyorum? Belirli bir sayı ile bir Hesap bulmak için tüm harita üzerinde yineleme yapmak varsa
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;
}
}
}
her şeyden önce, yanıtı kaldırmak için hesap bakiyesini kullanarak siparişi belirlediğiniz için teşekkür ederim. Tekrar kaldırmam ve tekrar eklemem gerektiğini düşündüm. Bu yeni haritayı nasıl uygulamalıyım? fonksiyonun içinde? – KLTR
@RoyLevy Evet, kaldırmanız ve tekrar eklemeniz gerekiyor. Yeni Harita ile ilgili olarak, yöntem her çağrıldığında oluşturursanız verimli olmaz. Yönteminize ikinci bir argüman olarak geçmeyi düşünmelisiniz. – Eran
ancak değerleri eklemek için yeni hashmap'ı nasıl kullanırım? Anladığım kadarıyla (1) hesabı alabilirim, ama hashmap değerini nasıl eklediğimi (anahtarlar bir intege olduğundan) özür dilerim im bir öğrenci belki aptalca sorular sorabilirim :) – KLTR