Java Hashmap求和方法
因此,我有以下任务: 给出了以下类:Java Hashmap求和方法,java,methods,hashmap,sum,Java,Methods,Hashmap,Sum,因此,我有以下任务: 给出了以下类: public class Konto { private final String inhaber; private double guthaben; public Konto(String inhaber) { this.inhaber = inhaber; } public String getInhaber() { return inhaber; } pu
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方法,该方法返回所有银行帐户的余额总和(guthaben)
- 写一个containskoto方法,检查银行中是否存在具有给定数字的帐户,并返回相应的布尔值
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;
}
}
}
package银行;
导入java.util.HashMap;
导入java.util.Map;
公营银行{
私人地图;
公共银行(){
konten=新HashMap();
}
公共近藤添加近藤(近藤近藤){
返回konten.put(konto.getInhaber(),konto);
}
公共字符串getKonto(字符串kontor){
if(康腾集装箱公司(康通公司)){
返回康通;
}
返回null;
}
公共Konto移除Konto(字符串kontonr){
返回konten。移除(kontonr);
}
公共双getGesamtguthaben(){
用于(双古塔本:康腾){
}
}
公共布尔CONTAINSKOTO(字符串kontonr){
if(康腾集装箱公司(康通公司)){
返回true;
}否则{
返回false;
}
}
}
所以我的问题是,如何用自己的方法计算所有银行账户的余额?其他方法正确吗?非常感谢所有帮助使用
Map.entrySet
迭代条目
double sum = 0;
for (Map.Entry<String, Konto> entrySet : konten.entrySet()) {
sum += entrySet.getValue().getGuthaben();
}
return sum;
使用
Map.entrySet
对条目进行迭代
double sum = 0;
for (Map.Entry<String, Konto> entrySet : konten.entrySet()) {
sum += entrySet.getValue().getGuthaben();
}
return sum;
是的,就像用户7说的。但是也可以使用values()方法,而不是使用entrySet()
是的,就像用户7说的。但是也可以使用values()方法,而不是使用entrySet()
很抱歉,此社区不是代码审阅服务。确定“代码是否正确”是编程的一项基本技能,它是您学习努力的一部分。怎么用?通过思考如何测试代码。意思:你需要什么样的测试,如何写下它们,如何有效地运行它们。用求和法寻求帮助是可以的(接近广义,除非你自己写了第一种方法)。。。但是“审阅所有内容”不在此社区的范围内。很抱歉,此社区不是代码审阅服务。确定“代码是否正确”是编程的一项基本技能,它是您学习努力的一部分。怎么用?通过思考如何测试代码。意思:你需要什么样的测试,如何写下它们,如何有效地运行它们。用求和法寻求帮助是可以的(接近广义,除非你自己写了第一种方法)。。。但是“回顾一切”不在这个社区的范围之内。
double sum = konten.values()
.stream()
.collect(Collectors.summarizingDouble(konto-> konto.getGuthaben()))
.getSum();