Вставка предмета в деку
Концентрируясь конкретно на методе 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()
шаги в одну строку.