java - Hashmap方法求和

标签 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;
    }
    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/

相关文章:

java - token "assert"出现语法错误,VariableDeclaratorId 无效

JavaH 无法为 JNI 类创建 C 头文件

java - 如何返回 Kadane 算法中的最大子数组?

ios - 如何知道 View 何时会从后台变为事件状态

java - Eclipse Mars 中 'display' 的快捷方式

python - pygame 模块 'pygame.event.get()' 不适用于方法吗?

java - 递归方法计算人在金字塔中支撑的重量

java - 从 Map 创建列表,其中包含 Map 值的前 N ​​个对象

Java 8 使用多个键进行分组

java - 具有多个值键的 HashMap ?