需要从两个不同的表中加载项目列表(ArrayList)。由于复杂的Hibernate映射,它们不能作为一个ArrayList加载。所以它们在类定义中分别由两个不同的Hibernate包加载。当我使用它们时,我想合并成单个列表。所以我的想法写一个函数如下,将多个源ArrayLists同步到单个目标列表
private List<Item> combinedList = new ArrayList<Item>();
public List<Item> getCombinedList()
{
combinedList.clear();
combinedList.addAll(getList1());
combinedList.addAll(getList2());
return combinedList;
}
getCombinedList()将被用于显示的项目和其他只读操作使用。任何删除或修改或添加操作仍将在List1和List2中执行(因为它将由Hibernate处理)。
我的问题是如何有效地同步getCombinedList()与源列表时有变化?
更新:每次调用getCombinedList()以获取最新的项目是低效的。我正在寻找一种方法来同步基础数据结构combinedList
。