ネストされた 2 つのループを含むプログラムを実行すると、このエラー OutOfMemoryError java heap space が発生します。1 週間解決策を探していましたが、結果はありません。ループのインスタンスの作成に問題がある可能性があることを知っていますそのため、メモリリークが発生するため、多くのメモリが必要です。メモリサイズを増やしてみましたが、これでは十分ではありません。私の質問は、実行時に多くのメモリを使用せずに同じプログラムを開発する方法です.これは私のプログラムです.
public String getAllActionsJson(){
//liste des actions de la table action
List<Action> actions = actionService.getAllActions();
//liste onglets de la table typeAction
List<TypeAction> typesActions=actionService.getTypeActions();
ActionNoeudJson actionRacine = null;
ActionNoeudJson actionFeuille = null;
List<ActionNoeudJson> listeFilles = null;
for(int i=0;i<typesActions.size();i++)
{
listeFilles = new ArrayList<ActionNoeudJson>();
actionRacine=new ActionNoeudJson();
actionRacine.setId(typesActions.get(i).getId());
actionRacine.setText(typesActions.get(i).getLibelle());
for(int j=0;j<actions.size();j++)
{
//si le type de l'action est le meme que le type de l'onglet
//on affecte actionFeuille à la racine courante(onglet approprié)
if(typesActions.get(i).getId()==actions.get(j).getTypeAction().getId())
{
actionFeuille = new ActionNoeudJson();
actionFeuille.setId(actions.get(j).getId());
actionFeuille.setText(actions.get(j).getLibelle());
actionFeuille.setIconCls("icon-tip");
listeFilles.add(actionFeuille);
actionRacine.setChildren(listeFilles);
}
}
listeActions.add(actionRacine);
}
return ActionSupport.SUCCESS;
}