我有这个代码:
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();
我希望这refreshAll
将从数据库中获取新列表并执行以下操作:
- 如果
id
对象中没有 - 插入它 - 如果
id
在对象中但 sid 不同 - 替换它 - 如果有一个
id
不在all
新列表中的 in - 删除它
这很简单,但正如我所见,我只能这样做:
for(...){
for(...){
}
for(...){
}
一个内部for
用于步骤 1 和 2,一个内部for
用于步骤 3。
我想知道是否有更有效的方法。