【问题标题】:Arraylist Search and Show object methods confusionArraylist Search 和 Show 对象方法混淆
【发布时间】:2012-01-23 22:52:12
【问题描述】:

这两种方法需要考虑来自名为 car 的第二个类的布尔 onLoan 才能应用,我的意思是只应考虑 onLoan == false 的汽车。我到了他们的基地,尝试了解决这个问题的想法,但目前对我来说似乎没有什么建议?谢谢!

/**
 * Constructor for objects of class RentalCompany
 */
public void showAllCarsNotOnloan ()
{
    for ( Car car:cars) { 

    if (cars.size()>0 ) {

        int i = 0;
        System.out.println(car.getDescription());
        i++;

    }
    else if ( cars.size() < 0 ){
        System.out.println ("Add cars first");
    }
   }
}

还有第二种方法

public Car searchCar(String description)
{
    for (Car car : cars) {
        if (car.getDescription() == description) {
            return car; 
        }
        else {
            System.out.println("This car is not listed. Retry!!");
        }
    }
    return null;
}

【问题讨论】:

  • 请注意,在第一种方法中,您正在检查遍历列表的循环内的汽车列表的大小。如果您在循环内,则列表不能为空。
  • 字符串比较需要.equals而不是==car.getDescription() == description.
  • 你想做什么,什么不起作用?
  • 在调用这些方法时,它们基本上都能正常工作,但是当我租一辆车为对象 car 调用 arraylist 中的一种方法时,它会将布尔值 onLoan 更改为 true,所以我想尝试什么要做的是在 showallcar 方法的情况下调用该方法,然后调用该方法来打印(索引 + 汽车的描述),但只是不是 onloan 的汽车意味着 onloan == false eg 1: Red Ford, 3 : 蓝色吉普车(在这种情况下 0: 和 2: 会丢失,因为它们是 onLoan)

标签: java methods arraylist


【解决方案1】:

以下将完成工作:

Car 类:

public class Car {
    private boolean onLoan;
    // Other variables...

    public boolean isOnLoan() {
        return onLoan;
    }
    // Other methods....
}

现在,showAllCarsNotOnloan 方法

public void showAllCarsNotOnloan() {
    if (cars.size() == 0) {
        System.out.println("Add cars first!");
        return;
    }

    for (Car car : cars) {
        if (!car.isOnLoan()) {
            System.out.println(car.getDescription());
        }
    }
}

searchCar 方法

public Car searchCar(String description) {
    for (Car car : cars) {
        if (car.getDescription().equals(description)) {
            return car;
        }
    }

    System.out.println("This car not listed. Retry!!");
    return null;
}

【讨论】:

  • 我有这个想法,但这意味着我需要向汽车类添加一个公共方法,但我的想法是不改变汽车类中的任何东西。它使添加方法变得更加简单,但是还有其他选择吗?搜索方法还需要仅查找 onloan == false 的汽车,因此不考虑 onLoan 的汽车。非常感谢您的评论和帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2012-07-30
  • 2012-02-11
相关资源
最近更新 更多