首页 > 解决方案 > 如何通过方法将项目添加到HashMap

问题描述

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

品牌:型号: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对象吗?或者函数一开始就错了。

标签: javahashmap

解决方案


您需要创建一个新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));
    }
}

推荐阅读