专门关注main中的insertFront()方法,如何创建包含num和price值的项目。还应该保留num和price或userinNum和userinPrice的值吗?
public static List<String> readAllLines(Path path, Charset cs) throws IOException {
try (BufferedReader reader = newBufferedReader(path, cs)) {
List<String> result = new ArrayList<>(); <-------- HERE
for (;;) {
String line = reader.readLine();
if (line == null)
break;
result.add(line);
}
return result;
}
}
主要方法MyDequeApp:
theQueue.insertFront(//ITEM???);
班级项目:
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;
}
}
}
从MyDeque类中插入方法:
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;
}
}
答案 0 :(得分:0)
是的,我会在队列中插入整个Item
,这将同时设置price和num。
要创建项目,只需创建和实例(&#39;将其新增&#39;),然后设置数字和价格:
Item newItem = new Item();
newItem.setPrice(someDoubleValue);
newItem.setNum(someStringValue);
theQueue.insertFront(newItem);
答案 1 :(得分:0)
您可以为Item
创建一个接受userinNum
和userinPrice
值的构造函数,并在检索用户的输入后调用它。
public Item(String num, double price){
this.num = num;
this.price = price;
}
通过使用这样的构造函数,您可以获取用户的输入并将它们存储在变量中,然后一旦有了输入,就可以调用它并将这些变量传递给它:
item1 = new Item(userinNum, userinPrice);
然后你可以在你的队列中添加item1
。这会将setNum()
和setPrice()
步骤合并为一行。
答案 2 :(得分:0)
如果我在这里误解了你的问题,请道歉
还应该保留num和price或userinNum的值 和userinPrice?
userinNum
和userinPrice
只是您用来保存用户提供的输入的变量。 num
和price
只是Item
类的属性,您要为其分配用户提供的值。
要将商品添加到队列中,请将第theQueue.insertFront();
行更改为theQueue.insertFront(item1);
。