Вставка предмета в деку

Концентрируясь конкретно на методе insertFront() в main, как мне создать элемент, содержащий значения num и price. Более того, он должен содержать значения num и price или userinNum и userinPrice?

theQueue.insertFront(//ITEM???);

Основной метод MyDequeApp:

import java.*;
import java.util.*;

public class MyDequeApp {

public static void main(String[] args)
{
    String userinNum;
    double userinPrice;

    Item item1= new Item();

    Scanner scan1=new Scanner(System.in);

    System.out.println("Enter the number of elements in the que");
    int queElm=scan1.nextInt();

    MyDeque theQueue=new MyDeque(queElm);

    System.out.println("1. Insert to front");
    System.out.println("2. Insert to rear");
    System.out.println("3. Remove from front");
    System.out.println("4. Remove from rear");
    System.out.println("5. Peek front");
    System.out.println("6. Peek rear");
    System.out.println("7. Display que");
    System.out.println("8. Quit");

    int queOp=scan1.nextInt();

    switch(queOp)
    {
        //1. Insert to front
        case 1:
            System.out.println("Enter an item #");
            userinNum=scan1.nextLine();
            item1.setNum(userinNum);
            System.out.println("Enter a price");
            userinPrice=scan1.nextDouble();
            item1.setPrice(userinPrice);
            System.out.println(item1.toString());
            theQueue.insertFront();
                break;

        case 5:
            theQueue.peekFront();
                break;

        default:
            break;


    }



}

}

Элемент класса:

public class Item {

double price;
String num;

//set/get method
public void setPrice(double userinPrice)
{
    price=userinPrice;
}

public double getPrice()
{
    return price;
}


public void setNum(String userinNum)
{
    num=userinNum;
}

public String getNum()
{
    return num;
}

//toString()
public String toString()
{
    return "Item number: "+num+"\n"+"Price: $"+price;
}

}

Вставить метод из класса MyDeque:

    public void insertFront(Item x)
    {
    if(front==maxSize)
        front=0;
    queArray[front++]=x;
    nItems++;
    }

3 ответа

Да я бы вставил весь Item в очереди, в которой будут установлены как цена, так и число.

Чтобы создать Предмет, просто создайте его и создайте экземпляр ('new it up'), затем установите число и цену:

Item newItem = new Item();
newItem.setPrice(someDoubleValue);
newItem.setNum(someStringValue);

theQueue.insertFront(newItem);

Извинения, если я неправильно понял ваш вопрос здесь

Более того, он должен содержать значения num и price или userinNum и userinPrice?

userinNum а также userinPrice это просто переменные, которые вы используете для хранения данных, предоставленных вам пользователем. num а также price просто атрибуты Item класс, которому вы назначаете значения, которые дал вам пользователь.

Чтобы добавить свой элемент в очередь, измените строку theQueue.insertFront(); в theQueue.insertFront(item1);,

Вы можете просто создать конструктор для Item который принимает значения userinNum а также userinPrice и вызвать его после получения входных данных пользователя.

public Item(String num, double price){
    this.num = num;
    this.price = price;
}

Используя такой конструктор, вы можете получить пользовательские входные данные и сохранить их в переменных, а затем, когда у вас есть входные данные, вы можете вызвать их и передать эти переменные:

item1 = new Item(userinNum, userinPrice);

Тогда вы можете просто добавить item1 в вашу очередь. Это объединяет setNum() а также setPrice() шаги в одну строку.

Другие вопросы по тегам