如何显示arraylist中的所有元素?

17 java arraylist car-analogy

说我有一个属性的汽车类makeregistration,我创建一个ArrayList来存储它们.如何显示ArrayList中的所有元素?

我现在有这个代码:

public Car getAll()
{
    for(int i = 0; i < cars.size(); i++) //cars name of arraylist
    {
        Car car = cars.get(i);  
        {
            return cars.get (i);
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

它编译得很好但是当我在我的测试器类中使用以下代码进行尝试时:

private static void getAll(Car c1)
{
    ArrayList <Car> cars = c1.getAll(); // error incompatible type
    for(Car item : cars)
    {   
        System.out.println(item.getMake()
                + " "
                + item.getReg()
                );
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到了不兼容类型的错误.我的编码是否正确?如果没有,有人可以告诉我它应该如何?

谢谢

Esk*_*ola 12

你想做这样的事吗?

public List<Car> getAll() {
    return new ArrayList<Car>(cars);
}
Run Code Online (Sandbox Code Playgroud)

然后叫它:

List<Car> cars = c1.getAll();
for (Car item : cars) {   
    System.out.println(item.getMake() + " " + item.getReg());
}
Run Code Online (Sandbox Code Playgroud)

  • 更好的是,您可以返回Collections.unmodifiableList(cars),这将保护列表不被类的用户修改. (2认同)
  • 是的,Collections.unmodifiableList()可能是明智的选择.虽然那时原始类可能会修改支持列表,这可能会使返回的不可修改列表的用户感到惊讶. (2认同)

Dar*_*ron 2

你的getAll()方法并没有得到全部。它返回第一辆车。

return语句终止循环。