0

ArrayList<Station>の古いオブジェクトを の更新されたオブジェクトに置き換える必要がありますTreeMap<Integer, ArrayList<Station>>

TreeMap> の ArrayList には、Station オブジェクトの一部しかありません。

これをすばやくスムーズに行う方法を知っている人はいますか? 私のアプリケーションは時間に敏感です。処理するデータ量が多いため、処理速度が速ければ速いほど良い結果が得られます。

役に立ったら、ここにコードを投稿できます

編集:

コードは次のとおりです。

public ArrayList<Station> smoothPingPong(ArrayList<Station> dados){
    ArrayList<Station> pingPongs = new ArrayList<>();
    TreeMap<Integer, ArrayList<Station>> tmap = new TreeMap<>();
    int tmap_key = 0;

    for(int i = 0; i<dados.size(); i++) {
        if(dados.get(i).getPingPong() == 1)     {
            pingPongs.add(dados.get(i));
        }
    }

    ArrayList<Station> next = new ArrayList<Station>();
    for(Station d : pingPongs)  {
        if(!next.isEmpty() && next.get(next.size() - 1).getId() != d.getId() - 1)       {
            tmap.put(tmap_key++, next);
            next = new ArrayList<Station>();
        }
        next.add(d);
    }

    if(!next.isEmpty())     {
        tmap.put(tmap_key++, next);
    }

    for(Integer a : tmap.keySet()){ 
        //Processes the treemap updating it
    }
}

ここで、ArrayList dados の Stations に戻り、TreeMap にある Stations で更新する必要があります。

4

1 に答える 1

1

新しいステーション オブジェクトを作成していないため、何も更新する必要はありません。ステーション オブジェクトはすべてのコレクションで同じ参照を共有しています。

この場合、ステーション コレクションのサブセットを返すだけですが、オブジェクト自体は同じです。

于 2013-07-10T01:21:42.777 に答える