1
我想创建一个用户定义的双向存储用户定义的金额对象。我创建一个项目对象,并给它的值或项目#和价格,而不是将对象存储在双端队列中。到目前为止,我的主要由一个单一的项目组成。每次我设置该项目时,都会将先前存储的项目值写入最近的项目中。我如何去创造一个数量不定的项目来存储它们全部?创建不确定数量的对象来放入一个deque
主要
import java.*;
import java.util.*;
public class MyDequeApp {
public static void main(String[] args)
{
//variables
String userinNum;
double userinPrice;
int queOp;
//creating new Item
Item item1= new Item();
//creating new Scanner
Scanner scan1=new Scanner(System.in);
//user input number of elements in the deque
System.out.println("Enter the number of elements in the que");
int queElm=scan1.nextInt();
MyDeque theQueue=new MyDeque(queElm);
//do/while so while user selects 1-7 they stay in the switch/case
do
{
//switch/case menu
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 deque");
System.out.println("Anything else to Quit");
//user input the case number
queOp=scan1.nextInt();
scan1.nextLine();
switch(queOp)
{
//insert to front
case 1:
System.out.println("Enter an item number");
userinNum=scan1.nextLine();
item1.setNum(userinNum);
System.out.println("Enter a price");
userinPrice=scan1.nextDouble();
scan1.nextLine();
item1.setPrice(userinPrice);
System.out.println(item1.toString());
theQueue.insertFront(item1);
break;
//insert to rear
case 2:
System.out.println("Enter an item numbeR");
userinNum=scan1.nextLine();
item1.setNum(userinNum);
System.out.println("Enter a pricE");
userinPrice=scan1.nextDouble();
scan1.nextLine();
item1.setPrice(userinPrice);
System.out.println(item1.toString());
theQueue.insertFront(item1);
theQueue.insertRear(item1);
break;
//remove from front
case 3:
theQueue.removeFront();
break;
//remove from rear
case 4:
theQueue.removeRear();
break;
//peek front
case 5:
System.out.println(theQueue.peekFront());
break;
//peek rear
case 6:
System.out.println(theQueue.peekRear());
break;
//display the deque
case 7:
System.out.println(theQueue.toString());
break;
//quit
default:
break;
}
}while(queOp>0 && queOp<8);
}
}
我还是有点不清楚。你的意思是添加在申报item2,item3,第4项等?或与一个项目(变量)?你能详细说明吗? – Dan
或可能递增? – Dan
只是它已经写入代码中了,但是您需要将该部分向下移动到循环中,以便循环也创建新项目。这里令人困惑的部分是,item1实际上是每次循环中的不同项目,但在循环中本身具有相同的名称,而在队列中却是不同的对象。 –