【问题标题】:Removing a number from a listed created by given numbers从给定数字创建的列表中删除一个数字
【发布时间】:2017-11-13 20:56:21
【问题描述】:

所以这里是详细信息。 我正在使用 java - BlueJ 进行编码,目前有一个主类 Auction,以及其他一些类:Lot、Person、Bid

该程序的目的是将物品及其价格输入拍卖,信息将根据价格、人物或物品名称/描述进行存储。

这是我的 getLot 方法的代码 - 用户输入批号,它显示批次的信息,我认为这也应该是 removeLot 方法的起点,因为它仍应检查给定的批号是否有效第一的。

我正在尝试弄清楚如何添加一个 removeLot 方法,以便我可以通过输入批号从批次中删除一个项目。

这是我为该部分准备的代码。

public Lot removeLot(int number)
 {
    if((number >= 1) && (number < nextLotNumber)) {
        // The number seems to be reasonable.
        Lot selectedLot = lots.get(number - 1);
        // Include a confidence check to be sure we have the
        // right lot.
        if(selectedLot.getNumber() != number) {
            System.out.println("Internal error: Lot number " +
                selectedLot.getNumber() +
                " was returned instead of " +
                number);
            // Don't return an invalid lot.
            selectedLot = null;
        }
        **else {
        Lot.removeIf(selectedLot.getNumber() = number);**
        }
        return selectedLot;

带有“**”的else块是我添加的,想要删除给定的数字。但这显然是错误的,我不知道该怎么办。

【问题讨论】:

    标签: java bluej


    【解决方案1】:

    如果lots 变量的数据类型是List,那么你可以试试下面的代码

    public Lot removeLot(int number)
     {
        Lot selectedLot=null;
        if((number >= 1) && (number < nextLotNumber)) {
            // The number seems to be reasonable.
            selectedLot = lots.get(number - 1);
            // Include a confidence check to be sure we have the
            // right lot.
            if(selectedLot.getNumber() != number) {
                System.out.println("Internal error: Lot number " +
                    selectedLot.getNumber() +
                    " was returned instead of " +
                    number);
                // Don't return an invalid lot.
                selectedLot=null;
            }
            else {
    
                if(selectedLot.getNumber() = number)
                    {
                        lots.remove(number-1);
                    }
    
            }
            return selectedLot;
    }
    

    【讨论】:

      【解决方案2】:

      Lot.removeIf(selectedLot.getNumber() = number) 不正确
      你可以试试:

      } else if(selectedLot.getNumber() == number) {
         Lot.removeIf(selectedLot.getNumber());
      }
      

      【讨论】:

        猜你喜欢
        • 2014-09-11
        • 2022-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-27
        • 1970-01-01
        • 2016-09-27
        • 1970-01-01
        相关资源
        最近更新 更多