使用TreeMap中的值<integer,arraylist <station =“”>&gt; </integer,> </station>更新ArrayList <station>

时间:2013-07-10 01:08:32

标签: java arraylist treemap

我需要使用ArrayList<Station>中的更新对象替换TreeMap<Integer, ArrayList<Station>>中过时的对象。

TreeMap的&GT;只有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更新它。

1 个答案:

答案 0 :(得分:1)

由于您没有创建新的Station Objects,因此您无需更新任何内容,工作站对象在您的所有集合中共享相同的引用。

在这种情况下,您只是返回了Station Collection的一个子集,但对象本身是相同的。