web-dev-qa-db-ja.com

配列リストのすべての要素を表示する方法は?

属性makeおよびregistrationを持つcarクラスがあり、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()
                );
    }
}

互換性のないタイプのエラーが表示されます。私のコーディングは正しいですか?そうでない場合、誰かが私にそれがどうあるべきかを見せてください?

ありがとうございました

17
Newtojava

このようなものを作ろうとしていますか?

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

getAll()メソッドがすべてを取得するわけではありません。最初の車を返します。

returnステートメントはループを終了します。

2
Darron

あなたが何をしているのかは、まったく明確ではありません。関数getAll()は、CarではなくList <Car>を返す必要があります。それ以外の場合、なぜgetAllと呼ぶのですか?

あなたが持っている場合

Car[] arrayOfCars

リストが必要な場合は、単にこれを行うことができます:

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

配列は文書化されています ここ

2
nsayer

接線: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()
}
2
Carl Manaster

別のアプローチは、CarクラスにtoString()メソッドを追加し、ArrayListのtoString()メソッドにすべての作業を行わせることです。

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

出力の行ごとに1台の車を取得するわけではありませんが、配列に何があるかだけを確認したい場合は迅速かつ簡単です。

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

出力は次のようになります。

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

こんにちは2番目のコードは次のようになります。

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

}

私は、arraylistとそのメソッドを含むCarListというクラスを持っているので、テスタークラスでは、基本的にこのCarListクラスを使用する次のコードがあります。

CarList c1; c1 = new CarList();

車の追加と削除、個々の車の表示など、他のすべてが機能します。配列リスト内のすべての車を表示するコードが必要です。

1
Newtojava

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() + " ");
        }
    }
0
BloodLoss