Как добавить элемент в HashMap методом - PullRequest
0 голосов
/ 12 апреля 2020

Я хочу добавить элемент из класса 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? Или функция неверна в начале.

1 Ответ

2 голосов
/ 12 апреля 2020

вам нужно создать новый 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));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...