租赁,展示和归还汽车arraylist不能正常工作

时间:2011-12-16 22:35:06

标签: java arraylist

基本上我有一项必须在1月完成的任务。我必须创建一个允许客户租车的模拟租赁服务。我基于ArrayList的逻辑,使用它的方法来管理我的汽车收藏。

我的代码有些问题,我的很多方法中的逻辑都运行不正常。在我添加的代码示例中,showCarrentTheCarreturnCar方法无法正常工作。 showCar方法显示所有汽车,但在调用方法时它会询问carNumberrentThecarreturnCar似乎在租用/归还所有汽车,而不仅仅是我指定的汽车。

如果有人能帮助我找出可能出错的地方,我会在下面的课程中显示相关代码。请说清楚我不想让我的作业完成一些指导。感谢。

显示汽车方法:

public void showCar (int carNumber)
{

    if (cars.size() < 0 ) {
        System.out.println ("Add cars first!!!");
    }
    else if (carNumber < cars.size()) {
        System.out.println(cars.get(carNumber));
    }
    else{
        System.out.println("Error!! This note cannot be shown, because it does not exist!!");
    }
}

租车法:

public void rentTheCar (int carNumber, String CustomerName, String hireDate, String returnDate, int daysOfHire)
{

    if (cars.size() < 0) {
       System.out.println("Empty list!! Add cars first!!");
    }
    else if (carNumber > cars.size()) {
       System.out.println("This car does not exist!!");
    }
    else {
        for (Car car : cars) {
            int index = 0;
            cars.get (carNumber);
            car.rentTheCar(CustomerName, hireDate, returnDate, daysOfHire);
            index ++;
        }
    } 
}

返车法:

public void returnCar (int carNumber)
{
    cars.get(carNumber);
    if (cars.size() < 0) {
       System.out.println("Error!! It is impossible to return a car from an empty list");
    }
    else if (carNumber > cars.size()) {
        System.out.println("Error!! Not a valis car!!");
    }
    else {
        for (Car car : cars) {
            car.returnTheCar();
            System.out.println ("The car has been returned correctly");
        }
    }
}

3 个答案:

答案 0 :(得分:1)

那么ReturnCar和RentTheCar中for循环的目的是什么?

他们在做什么?

上述线索应该让你走上正轨。

答案 1 :(得分:0)

您的showCar方法看起来不错,您确定它会显示您收藏中的所有汽车吗?至于您的其他两种方法,您循环整个集合并在每个元素上调用租赁操作。您将整个逻辑基于索引数组,因此请使用索引。

http://docs.oracle.com/javase/6/docs/api/java/util/List.html

add(int index, E element) 
          Inserts the specified element at the specified position in this list (optional operation).

get(int index) 
          Returns the element at the specified position in this list.

答案 2 :(得分:0)

我认为你应该看看你的foreach循环,也许你会在那里找到一两个暗示!这一行:

for (Car car : cars) {
    // do something...
}

有一个原因,它被称为for- 每个循环。 :) 希望我帮忙。