Sobes.tech
Junior — Middle

Ποιος τύπος συλλογής ταιριάζει καλύτερα για την αποτελεσματική προσθήκη στοιχείων στο μέσο της δομής;

sobes.tech AI

Απάντηση από AI

Για αποτελεσματική προσθήκη στοιχείων στο μέσο μιας δομής σε Java, η συλλογή LinkedList είναι η πιο κατάλληλη.

Το LinkedList υλοποιεί μια διπλά συνδεδεμένη λίστα, που επιτρέπει την εισαγωγή στοιχείων σε οποιοδήποτε σημείο της λίστας σε χρόνο O(1), εφόσον υπάρχει αναφορά στον απαραίτητο κόμβο. Σε αντίθεση με το ArrayList, όπου η εισαγωγή στο μέσο απαιτεί μετακίνηση στοιχείων και διαρκεί O(n).

Παράδειγμα χρήσης του LinkedList:

import java.util.LinkedList;

LinkedList<String> list = new LinkedList<>();
list.add("A");
list.add("B");
list.add("D");

// Εισάγετε το "C" στη θέση 2 (μεταξύ B και D)
list.add(2, "C");

System.out.println(list); // [A, B, C, D]

Εάν χρειάζεται συχνά πρόσβαση σε στοιχεία με βάση το δείκτη, λάβετε υπόψη ότι η πρόσβαση σε μια LinkedList είναι O(n), σε αντίθεση με το ArrayList που είναι O(1).