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

时间:2009-04-17 22:09:48

标签: 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;
}

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

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()
                );
    }
}

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

谢谢

10 个答案:

答案 0 :(得分:12)

你想尝试制作这样的东西吗?

public List<Car> getAll() {
    return new ArrayList<Car>(cars);
}

然后称之为:

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

答案 1 :(得分:2)

您的getAll()方法无法全部获得。它返回第一辆车。

return语句终止循环。

答案 2 :(得分:2)

您收到错误,因为Car类中的getAll函数返回单个Car并且您想将其分配给数组。

目前尚不清楚,您可能希望发布更多代码。你为什么要把一辆车送到这个功能?在汽车上调用getAll是什么意思。

答案 3 :(得分:2)

目前还不清楚你在做什么。你的函数getAll()应该返回一个List&lt; Car&gt;而不是Car。否则,为什么称它为getAll?

如果你有

Car[] arrayOfCars

并想要一个List,你可以简单地这样做:

List<Car> listOfCars = Arrays.asList(arrayOfCars);

数组记录Here

答案 4 :(得分:2)

Tangential:String.format()rocks:

public String toString() {
    return String.format("%s %s", getMake(), getReg());
}

private static void printAll() {
    for (Car car: cars)
        System.out.println(car); // invokes Car.toString()
}

答案 5 :(得分:2)

另一种方法是在toString()类中添加Car方法,只需让ArrayList的toString()方法完成所有工作。

@Override
public String toString()
{
    return "Car{" +
            "make=" + make +
            ", registration='" + registration + '\'' +
            '}';
}

输出中每行不会有一辆汽车,但如果您只想查看阵列中的内容,则可以快速简便。

List<Car> cars = c1.getAll();
System.out.println(cars);

输出将是这样的:

[Car{make=FORD, registration='ABC 123'},
Car{make=TOYOTA, registration='ZYZ 999'}]

答案 6 :(得分:1)

对不起,第二个的代码应该是:

private static void getAll(CarList c1) {

ArrayList <Car> cars = c1.getAll(); // error incompatible type
for(Car item : cars)
{   
      System.out.println(item.getMake()
                       + " "
                       + item.getReg()
                       );
}

}

我有一个名为CarList的类,它包含arraylist及其方法,因此在tester类中,我基本上使用了这个CarList类的代码:

CarList c1; c1 = new CarList();

其他一切都有效,例如添加和移除汽车以及显示个人汽车,我只需要一个代码来显示arraylist中的所有汽车。

答案 7 :(得分:1)

为每个循环设置以获取所有值

for (String member : members){
    Log.i("Member name: ", member);
}

答案 8 :(得分:0)

Arraylist使用Iterator接口遍历元素 使用此

public void display(ArrayList<Integer> v) {
        Iterator vEnum = v.iterator();
        System.out.println("\nElements in vector:");
        while (vEnum.hasNext()) {
            System.out.print(vEnum.next() + " ");
        }
    }

答案 9 :(得分:-1)

您可以使用arraylistname.clone()