【问题标题】:inserting an item into a deque将项目插入双端队列
【发布时间】:2016-03-25 21:32:16
【问题描述】:

特别关注 main 中的 insertFront() 方法,我该如何创建一个包含 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++;
    }

【问题讨论】:

    标签: java queue deque


    【解决方案1】:

    是的,我会将整个 Item 插入队列中,这将同时设置价格和数量。

    要创建一个项目,只需创建和实例('new it up'),然后设置数量和价格:

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

    【讨论】:

      【解决方案2】:

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

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

      通过使用这样的构造函数,您可以获取用户的输入并将它们存储在变量中,然后一旦获得输入,您就可以调用它并将这些变量传递给它:

      item1 = new Item(userinNum, userinPrice);
      

      然后您可以将item1 添加到您的出列队列中。这将setNum()setPrice() 步骤合并为一行。

      【讨论】:

        【解决方案3】:

        抱歉,如果我在这里误解了您的问题

        它还应该保存 num 和 price 或 userinNum 的值 和 userinPrice?

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

        要将您的项目添加到队列中,请将行 theQueue.insertFront(); 更改为 theQueue.insertFront(item1);

        【讨论】:

          猜你喜欢
          • 2012-09-07
          • 1970-01-01
          • 1970-01-01
          • 2018-07-02
          • 1970-01-01
          • 2021-09-21
          • 2016-05-11
          • 2017-05-31
          • 2014-05-15
          相关资源
          最近更新 更多