0

乗客と駅(とりわけ)のクラスを含む鉄道シミュレーターを構築しています。Passengerクラスには属性endLocがあります。これは、各乗客(つまり、駅オブジェクト)の目的の終了位置になります。ネットワーク上の各ステーションでランダムな数の乗客をArrayListに生成しており、endLocの属性も(すべてのステーションオブジェクトのリストから)ランダムに生成したいのですが、作業できません毎回リストから属性をランダムにする方法を説明します。

    ArrayList<Passenger> passengers = new ArrayList<Passenger>();
    for (int i = 0; i<p; i++){
        passengers.add(new Passenger(statA));

つまり、乱数を取得し、それを目的のステーションにマッピングしたら、statAの代わりにコードに何を入力して、乱数に適用されるステーションを意味しますか?

誰かがこれを行う方法を教えてもらえますか、または少なくとも私を正しい方向に向けることができますか?ありがとう。

4

3 に答える 3

1

このようなものを書いてください:

    List<String> stations = new ArrayList<String>();  
            //add stations..in the list

    int numStations = stations.size();

    int maxPassengersAtStation = 100;//assgin you number

    for(int sCount=0; sCount<numStations; sCount++){
        int passangersAtStation = (int)(Math.random() * maxPassengersAtStation);
        for(int j=0; j<passangersAtStation; j++){
            int passengerDestination = sCount + (int)(
                       Math.random() * ((numStations - sCount) + 1));
            passengers.add(new Passenger(stations.get(passengerDestination)));
        }
    }
于 2012-10-12T13:16:27.720 に答える
0

ランダムなアイデアとしては、1からyour_list.lengthまでの数値を生成し、そのオブジェクトをリストから取得してendLocに割り当てるというものがあります。

于 2012-10-12T12:55:33.730 に答える
0

ランダムなintxを生成してから、x = x%allStations.size();を実行します。xは、すべてのステーションを含むリストのランダムなインデックスになります。

于 2012-10-12T12:57:02.167 に答える