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(...){
}