java - 如何通过方法将项目添加到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
对象吗?或者函数一开始就错了。
解决方案
您需要创建一个新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));
}
}
推荐阅读
- c++ - 不使用以下字符的功能 C++ 程序:';'。'{', '}', '\'
- sumo - 无 GUI 构建 SUMO
- python - 通过分隔符将记录 DataFrame 拆分为多个记录
- c# - 使用 api 在 DocuSign 中关闭用户帐户
- c# - 如何在 T4 CodeGen 中使用类的变量
- javascript - 在 React 中选中开关/复选框时,如何执行通过道具传递的函数?
- ms-access - Python 融化的 MS Access 版本
- javascript - 如何编写一个javascript程序来满足以下需求?
- javascript - 如何异步检索 fetch PromiseValue?
- assembly - 间接访问堆栈失败