Colecții în java

În acest articol vom vorbi despre, probabil, cele mai frecvent utilizate colecții de listă, și anume despre astfel de clase ca AbstractList, ArrayList, LinkedList.

Lista este o colecție ordonată uneori numită listă sau secvență. Lista poate conține elemente duplicate. Dezvoltatorul are control absolut asupra locului în care fiecare element va fi introdus în listă. De asemenea, utilizatorul poate accesa elementele listate după index. În plus față de operațiile standard ale interfeței Collection, lista conține următoarele:







Acces prin poziție - manipulează elementele pe baza poziției indexului lor în listă.

În ciuda faptului că există metode în interfața Listare pentru accesarea elementului după poziție (index), acest lucru nu este recomandat. În unele implementări ale listei (de exemplu, LinkedList), aceste operațiuni pot fi efectuate într-un timp proporțional cu valoarea indexului.

Căutare - găsește elementul specificat și își returnează poziția în listă. Există două metode pentru aceasta: indexOf () și lastIndexOf ().

Iteratorul special ListIterator - conține un iterator ListIterator îmbunătățit pentru procesarea proprietăților succesive ale listei.

După cum se poate observa din codul de mai sus, ListIterator are metode pentru controlul iteratorului în ordine inversă: hasPrevious (), previous (), previousIndex ().







Gama de elemente (sublistă) - vă permite să manipulați o gamă arbitrară în listă. Aceasta se face folosind metoda subList (). De exemplu:

Metoda subList () are două valori: indexul de pornire și indexul final al sublistării. Rețineți că gama de elemente (listă) nu este creată prin duplicarea elementelor din lista părinte. Această listă este parte a listei părinte, ceea ce înseamnă că toate manipulările de pe ea sunt reflectate pe lista părinte. Exemplul de mai sus demonstrează acest lucru bine.

De asemenea, rețineți că un element cu un indice finit nu este inclus în listă.

Figura 1 prezintă ierarhia claselor Lista.

Colecții în java

Figura 1. Ierarhia listei în cadrul Colecțiilor

Interfața List are de asemenea două clase învechite: Vector și Stack, menționate în articolul precedent.

Spre deosebire de Set, lista poate conține elemente duplicate. Poate conține elemente nulă.

Unele implementări ale listelor au limitări asupra elementelor pe care le pot conține. De exemplu, în unele implementări este interzisă utilizarea null ca element pentru inserare (această regulă nu se aplică în cazul ArrayList și LinkedList).

Două obiecte de tip List sunt aceleași (adică egale () returnează adevărat) numai dacă ele conțin aceleași elemente în aceeași ordine.

ArrayList este cea mai utilizată implementare a listei. ArrayList are cea mai mare performanță în ceea ce privește accesul la un element aleator în matrice.

LinkedList este o altă implementare a interfeței List. Spre deosebire de ArrayList, LinkedList are o viteză de inserare mai rapidă pentru element în orice loc din listă, dar accesul la element este direct proporțional cu poziția sa față de începutul secvenței.







Articole similare

Trimiteți-le prietenilor: