Il est nécessaire de charger une liste d'éléments (ArrayList) à partir de deux tables différentes. En raison du mappage Hibernate complexe, ils ne peuvent pas être chargés en tant que ArrayList. Ils sont donc chargés séparément par deux sacs Hibernate différents dans la définition de la classe. Quand je les utilise, j'aimerais les combiner en une seule liste. Donc, je pense à écrire une fonction comme suit,Synchronisation de plusieurs ArrayLists sources dans une seule liste cible
private List<Item> combinedList = new ArrayList<Item>();
public List<Item> getCombinedList()
{
combinedList.clear();
combinedList.addAll(getList1());
combinedList.addAll(getList2());
return combinedList;
}
getCombinedList() sera utilisé pour afficher les articles et utilisés dans d'autres opérations en lecture seule. Toutes les opérations de suppression ou de modification ou d'ajout seront toujours exécutées dans List1 et List2 (car il sera géré par Hibernate).
Ma question est comment puis-je synchroniser efficacement getCombinedList() avec les listes de sources lorsqu'il y a un changement? Mise à jour: Appeler getCombinedList() à chaque fois pour obtenir les derniers éléments est inefficace. Je suis à la recherche d'un moyen de synchroniser la structure de données sous-jacente combinedList
.