属性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()
);
}
}
互換性のないタイプのエラーが表示されます。私のコーディングは正しいですか?そうでない場合、誰かが私にそれがどうあるべきかを見せてください?
ありがとうございました
このようなものを作ろうとしていますか?
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());
}
getAll()
メソッドがすべてを取得するわけではありません。最初の車を返します。
return
ステートメントはループを終了します。
あなたが何をしているのかは、まったく明確ではありません。関数getAll()は、CarではなくList <Car>を返す必要があります。それ以外の場合、なぜgetAllと呼ぶのですか?
あなたが持っている場合
Car[] arrayOfCars
リストが必要な場合は、単にこれを行うことができます:
List<Car> listOfCars = Arrays.asList(arrayOfCars);
配列は文書化されています ここ 。
接線: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()
}
別のアプローチは、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番目のコードは次のようになります。
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();
車の追加と削除、個々の車の表示など、他のすべてが機能します。配列リスト内のすべての車を表示するコードが必要です。
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() + " ");
}
}