java - 如何通过方法将item添加到HashMap中

标签 java hashmap

我想通过该方法将 DisplayCard 类中的一些项目添加到 hashMap displayCardMap 中。 hashmap 的输出看起来像

brand: modelNumber: memorySize

然后我创建了一些方法来帮助我。

import java.util.*;

public class ComputerShop {

    Map <String, Double> displayCardMap = new HashMap <String, Double>();

    public void addDisplayCard(DisplayCard oneDisplayCard){
        displayCardMap.put(oneDisplayCard.getBrand() + ": " + oneDisplayCard.getmodelNumber(), oneDisplayCard.getmemorySize());
    }
}

public class DisplayCard {
    String brand;
    String modelNumber;
    double memorySize;

    //constructor method
    public DisplayCard(String brand, String modelNumber, double memorySize){
        this.brand = brand;
        this.modelNumber = modelNumber;
        this.memorySize = memorySize;
    }

    // getter method
    public String getBrand(){
        return brand;
    }

    public String getmodelNumber(){
        return modelNumber;
    }

    public double getmemorySize(){
        return memorySize;
    }
 }

但是在通过 addDisplayCard() 创建新项目后出现错误

public class TestComputerShop{
    public static void main(String[] args) {

        ComputerShop ashop = new ComputerShop();
        // call method
        ashop.addDisplayCard("ATI", "R9 390",6.0);

    } 
}

所以我想知道问题出在哪里。

我应该先创建一个新的 DisplayCard 对象吗?或者函数一开始就是错误的。

最佳答案

您需要创建一个新的 DisplayCard 对象,因为您的方法需要一个:

public class TestComputerShop {
    public static void main(String[] args) {

        ComputerShop ashop = new ComputerShop();
        // call method
        ashop.addDisplayCard(new DisplayCard("ATI", "R9 390",6.0));

    } 
}

另一个解决方案是在 ComputerShop 内使用方法重载:

public class ComputerShop {

    Map <String, Double> displayCardMap = new HashMap <String, Double>();

    public void addDisplayCard(DisplayCard oneDisplayCard){
        displayCardMap.put(oneDisplayCard.getBrand() + ": " + oneDisplayCard.getmodelNumber(), oneDisplayCard.getmemorySize());
    }

    public void addDisplayCard(String brand, String modelNumber, double memorySize){
        this.addDisplayCard(new DisplayCard(brand, modelNumber, memorySize));
    }
}

关于java - 如何通过方法将item添加到HashMap中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61170704/

相关文章:

java - zip 文件下载适用于 apache httpclient v4.3.6,但对于其他版本则失败

java - 添加一个列表到 Json ObjectNode

java - JDBC ResultSet::RefreshRow 不适用于级联更新

java - 映射 containsKey 返回 false

python - Python 的字典映射使用什么哈希算法?

java 小服务程序 : difference between send redirect and forward in servlets

java - Spring data Elasticsearch 按字段查找和最新日期查询

java - 表单的 Thymeleaf 动态数据类型

java - Java中的keyComparator是什么?

Java:从 HashMap 读取可以改变其状态吗?