所以我有以下任务:
给出以下类:
public class Konto {
private final String inhaber;
private double guthaben;
public Konto(String inhaber) {
this.inhaber = inhaber;
}
public String getInhaber() {
return inhaber;
}
public double getGuthaben() {
return guthaben;
}
public void einzahlen(double betrag) {
guthaben += betrag;
}
public void auszahlen(double betrag) {
guthaben -= betrag;
}
}
使用这些类,实现另一个名为 Bank 的类,该类具有以下属性:
名为accounts的属性是所有账户的目录 帐号和相关帐户 (java.util.HashMap) 并且应该在类的默认构造函数中初始化。
编写 addKonto 方法来添加 Account 类型的新帐户,编写 getKonto 方法来通过号码查询帐户,以及编写名为 removeKonto 的方法来删除具有特定号码的帐户。
<实现 getGesamtguthaben 方法,该方法返回所有银行帐户的 Balance(guthaben) 总和。
编写一个 containsKonto 方法,检查银行中是否存在具有给定编号的帐户并返回相应的 boolean 值。
这是我的代码:
package Bank;
import java.util.HashMap;
import java.util.Map;
public class Bank {
private Map<String, Konto> konten;
public Bank() {
konten = new HashMap<String, Konto>();
}
public Konto addKonto(Konto konto) {
return konten.put(konto.getInhaber(), konto);
}
public String getKonto(String kontonr) {
if(konten.containsKey(kontonr)) {
return kontonr;
}
return null;
}
public Konto removeKonto(String kontonr) {
return konten.remove(kontonr);
}
public double getGesamtguthaben() {
for(double guthaben : konten) {
}
}
public boolean containsKonto(String kontonr) {
if(konten.containsKey(kontonr)) {
return true;
}else {
return false;
}
}
}
所以我的问题是如何用自己的方法汇总所有银行账户的余额?其他方法是否正确?感谢所有帮助
最佳答案
使用Map.entrySet
迭代条目。
double sum = 0;
for (Map.Entry<String, Konto> entrySet : konten.entrySet()) {
sum += entrySet.getValue().getGuthaben();
}
return sum;
或者使用流和 Collectors.summarizingDouble
double sum = konten.entrySet()
.stream()
.collect(Collectors.summarizingDouble(entry -> entry.getValue().getGuthaben()))
.getSum();
关于java - Hashmap方法求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50954908/