将项目插入双端队列

时间:2016-03-25 21:32:16

标签: java queue deque

专门关注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;
}

}

3 个答案:

答案 0 :(得分:0)

是的,我会在队列中插入整个Item,这将同时设置price和num。

要创建项目,只需创建和实例(&#39;将其新增&#39;),然后设置数字和价格:

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

theQueue.insertFront(newItem);

答案 1 :(得分:0)

您可以为Item创建一个接受userinNumuserinPrice值的构造函数,并在检索用户的输入后调用它。

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?

userinNumuserinPrice只是您用来保存用户提供的输入的变量。 numprice只是Item类的属性,您要为其分配用户提供的值。

要将商品添加到队列中,请将第theQueue.insertFront();行更改为theQueue.insertFront(item1);