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).