1. Adăugarea unui element la mijlocul (sau la începutul) unei liste
Dacă vrem să inserăm un element în mijlocul listei, iată ce se întâmplă în interiorul listei.
Să presupunem că avem o listă de 11 elemente:
Vrem să inserăm numărul 10.000 în lista de la indexul 5. Pentru a face acest lucru, trebuie doar să executăm:
list.add(5, 10000);
Unde list
este o ArrayList
variabilă. Metoda add(int index, type value)
adaugă valoarea 10000 la poziția 5 din listă. Iată ce se întâmplă în add()
metodă:
Pasul 1: Toate elementele matricei, începând din a 5-a poziție, vor fi deplasate (copiate) cu 1 element spre sfârșitul matricei:
Rețineți că elementele din celula a 5-a și a 6-a a matricei sunt acum aceleași.
Pasul 2: scrieți valoarea 10.000 în a 5-a celulă:
Acum lista conține toate elementele matricei, iar a cincea celulă conține numărul 10.000. Exact ce ne-am dorit.
2. Eliminarea unui element dintr-o listă
Eliminarea unui element dintr-o listă este similară cu inserarea lui, dar procesul este invers.
Să eliminăm al treilea element dintr-o listă. Pentru a face acest lucru, trebuie să executăm:
list.remove(3);
Iată ce se întâmplă în metoda remove():
Pasul 1: Elementele matricei, începând din a 4-a poziție, vor fi deplasate (copiate) cu 1 element către începutul matricei:
Pasul 2: Valoarea variabilei size
va fi redusă cu 1.
Vă rugăm să rețineți că există câteva valori colorate cu gri la sfârșitul matricei. Din punct de vedere tehnic, acestea sunt gunoi. Acestea trebuie îndepărtate pentru a nu interfera cu colectarea gunoiului .
Pasul 3: Curățarea gunoiului
3. Exemple practice de lucru cu o listă în Java
Să scriem câteva exemple de lucru cu liste:
Vom enumera toate numerele pare din intervalul de la 1 la 20:
Cod | Note |
---|---|
|
Creați un obiect listă Buclă peste toți indicii 1 la 20 Dacă indexul este divizibil cu 2 fără rest, adăugați-l la listă |
Acum să afișăm toate elementele listei pe ecran:
Cod | Note |
---|---|
|
Creați un obiect listă Buclă peste toți indicii 1 la 20 Dacă numărul este divizibil cu 2 fără rest, adăugați-l la listă Buclă de la zero la dimensiunea listei Afișați fiecare element pe ecran |
Îndepărtarea elementelor:
Acum să eliminăm toate elementele care sunt divizibile cu 4. Rețineți că după eliminarea unui element din listă, pozițiile elementelor rămase se schimbă imediat.
Cod | Note |
---|---|
|
Creați un obiect listă Buclă peste toți indicii 1 la 20 Dacă indexul este divizibil cu 2 fără rest, adăugați-l la listă Buclă de la zero la dimensiunea listei Dacă un element al listei este divizibil cu 4 fără rest: a) eliminați elementul b) micșorați i contorul astfel încât obținem același indice la următoarea iterație a buclei |
Să presupunem că trebuie să eliminați ultimele 3 elemente dintr-o listă.
Iată cum să faci asta incorect:
Cod | Note |
---|---|
|
Creați un obiect listă Lista are 10 elemente: 2 , 4 , 6 , ... 20 n = 10 n - 3 = 7 (au rămas 9 elemente în listă) n - 2 = 8 (au rămas 8 elemente în listă) n - 1 = 9 (au rămas 7 elemente în listă) |
După eliminarea elementelor 7 și 8, în listă vor rămâne doar 8 elemente. Aceasta înseamnă că nu va fi posibilă ștergerea celui de-al 9-lea element - va apărea o eroare în program.
Iată modalitatea corectă de a elimina elementele:
Opțiunea 1 | Opțiunea 2 |
---|---|
|
|
Elementele trebuie îndepărtate fie de la capăt, fie dintr-o altă locație consistentă, deoarece elementele sunt deplasate cu unul după fiecare operație de îndepărtare.
GO TO FULL VERSION