Sobes.tech
Junior — Middle

Ktorá z dvoch možností ukladania prvkov je vhodnejšia pre rýchly prechod: ArrayList alebo LinkedList?

sobes.tech AI

Odpoveď od AI

Pre rýchle prechádzanie prvkov je vhodnejšie použiť ArrayList.

ArrayList uchováva prvky v súvislom poli, čo zabezpečuje rýchlu sekvenčnú iteráciu vďaka dobrej lokalite dát a cache. Naopak, LinkedList pozostáva z uzlov spojených odkazmi, a pri prechádzaní sa sledujú ukazovatele, čo je pomalšie kvôli častým prechodom v pamäti a absencii lokalít.

Príklad:

List<Integer> list = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
    list.add(i);
}

for (Integer num : list) {
    System.out.println(num);
}

Takéto prechádzanie bude efektívnejšie než ekvivalentné pre LinkedList.