1

ArrayList の作成について質問があります。Car クラスがありましたが、コンテンツを配置するために ArrayList を作成する必要があります。Race という名前を付けました。以下のコードを参照してください。

import java.util.ArrayList;


public class Race {

private ArrayList<Car>cars;

public Race(){
cars=new ArrayList<Car>();
}

ここで、ArrayList にコンテンツを追加するためのメソッドが必要です。混乱している書き込み方法が 2 つあります。

最初の1つ

public void addCars(){

Car Toyota=new Car("Toyota",1.0,1.0,2.0,2.0);
Car Honda=new Car("Honda",1.0,2.0,1.0,2.0);
Car Mazda=new Car("Mazda",1.0,3.0,2.0,3.0);
Car Suzuki=new Car("Suzuki",1.0,4.0,4.0,2.0);

cars.add(Toyota);
cars.add(Honda);
cars.add(Mazda);
cars.add(Suzuki);

    }

二つ目

public void addCars(Object nm,String n, double s, double p, double a, double b){

Car name=new Car(n,s,p,a,b);
cars.add(name);
    }

私がコーディングしたときにどちらの方法でも間違いは報告されていませんが、どちらが正しいか、またはどちらも正しくないかわかりません。助けてください、乾杯!

アップデート:

    public void addCars(Car car){
cars.add(car);

   } 

これは私が最後に使用したもので、main メソッドを使用して車を個別に追加する Test という新しいクラスを作成しましたが、最後の行に誤りがあります。

    public class Test {

public static void main(String[] args) {
    Car Toyota=new Car("Toyota",1.0,1.0,2.0,2.0);
    **cars.addCars(Toyota);**

直し方がわかりません、助けてください!

4

6 に答える 6

3

それはあなたが何を達成したいかによります。一般的には、API を提供して外部から使用する方が適切です。ただし、あなたの場合、「addCars」関数はArrayListにデータを入力するために使用されたと思います(そのようなものと呼ぶ必要があります)-これは、事前定義された値をコレクションに追加することを意味します。その場合は、最初のものを使用してください。

したがって、どちらの方法も正しく (最初populateCarsと 2 番目を呼び出す必要がありaddCarます)、機能するはずですが、状況に応じてそれらを使用する必要があります。

また、車を追加するための API を提供する場合は、add メソッドで作成するのではなく、ユーザーが自分で Car オブジェクトを取得できるようにします。(追加する前に変更したいかもしれませんが、わかりません)

したがって、いずれかの方法を使用することをお勧めしますが、最初の方法を次のように変更します。

public void populateCars(){
    Car Toyota=new Car("Toyota",1.0,1.0,2.0,2.0);
    Car Honda=new Car("Honda",1.0,2.0,1.0,2.0);
    Car Mazda=new Car("Mazda",1.0,3.0,2.0,3.0);
    Car Suzuki=new Car("Suzuki",1.0,4.0,4.0,2.0);

    cars.add(Toyota);
    cars.add(Honda);
    cars.add(Mazda);
    cars.add(Suzuki);
}

または2番目に:

public void addCar(Car car){
    cars.add(car);
}
于 2013-10-06T12:46:16.860 に答える
2

あなたが言及した両方の方法は正しいですが、メソッド addCars() を変更して Car 型の引数を取る必要があります。

たとえば、メソッド シグネチャを次のように変更します。

public void addCars(Car car){
     cars.add(car);
}

そして、次のように新しい車を渡すだけです:

addCars(new Car("Toyota",1.0,1.0,2.0,2.0));
于 2013-10-06T12:51:05.407 に答える
1

唯一の違いは、最初のケースではリストにハードコーディングされた要素があり、2 番目のアプローチではそれらを動的に追加することです。何を使用するかは、必要に応じて異なります。後でarraylistを使用して要素を取得したり、sthを実行したりすると思います。次に、arraylistでgetterメソッドを使用し、それを反復処理します...これは、選択した両方のアプローチで機能します。

于 2013-10-06T12:52:37.910 に答える
0

@pei wangいい質問です.. 2番目のアプローチは、値をハードコーディングしていないため、良いです..少し先に進む必要があります.. 2番目のアプローチでは、セッターとゲッターを使用してDTOデザインパターンを使用してください

于 2013-10-06T13:07:20.657 に答える