Java 按另一个arraylist刷新arraylist

Java 按另一个arraylist刷新arraylist,java,Java,我有以下代码: public class Server{ public static ArrayList<Server> all; public int id; public int sid; public Server(int id){ thid.id = id; sid = fetchSidFromDB(id); } public Server(int id, int sid){ thid.id = id; sid =

我有以下代码:

public class Server{
  public static ArrayList<Server> all;

  public int id;
  public int sid;

  public Server(int id){
    thid.id = id;
    sid = fetchSidFromDB(id);
  }

  public Server(int id, int sid){
    thid.id = id;
    sid = sid;
  }

  public static void loadAll(){
    //Assume that I fill 'all' with the servers from the db
    all = new ArrayList<Server>();
  }

  //gets only a list of 'id's with out the sid
  public static void refreshAll(){
  }
}

//in the main
Server.loadAll();
Server.refreshAll();
一个内部
用于步骤1和2,一个内部
用于步骤3


我想知道是否有更有效的方法。

看起来您正在尝试缓存数据库记录……对于这些任务,已经有可用的工具,其中之一是
JPA
,它可以透明地处理缓存


为例,您可以通过两种方式提高效率(不包括Yogendra Singh评论中的方式):

  • 使用带有
    id
    HashMap
    作为键。如果您需要元素的顺序与从数据库接收到的相同,请使用
    LinkedHashMap

  • 如果可以确保列表是按
    id
    排序的,那么只需使用一个循环并使用迭代器在第二个列表上前进即可


  • 是什么阻止您用新列表替换所有列表本身?为什么不替换为新列表?
    sid=fetchSidFromDB(id)只是一个例子,它比那个复杂得多,这就是我试图避免的。
    
    for(...){
      for(...){
      }
      for(...){
    }