Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hashmap求和方法_Java_Methods_Hashmap_Sum - Fatal编程技术网

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();