Du kan inte radera en ArrayList. Visst, du kan ta bort elementen i den och sätta in nya, men det är fortfarande samma ArrayList. Kan tyckas petigt men det är fundamentalt viktigt att förstå hur det fungerar "under huven"; det är Javas runtime som avgör när en instans (ett objekt som skapats genom "new NågotObjekt(…)") kan raderas ur minnet.
Det vanligaste är att en instans raderas när det inte längre finns kvar några referenser till den. En referens kan hållas i en av dig skapad variabel, som i fallet ArrayList<String> item = new ArrayList<>();, där item rent praktiskt håller värdet av en referens till den nyskapade listan. När du med itemList.add(item); lägger till item i itemList innehåller itemList samma referensvärde som item för stunden håller.
Nu till det intressanta: Om du efter detta allokerar en ny ArrayList till item (alltså item = new ArrayList<String>()), så kommer datan under den förra referensen ligga kvar, orörd, i itemList, medan item nu pekar på ett ny tom lista.
Sammanfattningsvis kan du skapa en praktiskt taget oändlig mängd "item"-listor genom att göra något i stilen
ArrayList<String> item;
ArrayList<ArrayList<String>> itemList = new ArrayList<>();
for (int i=0; i<9000; i++) {
item = new ArrayList<>();
item.add("Item " + i);
itemList.add(item);
}