Introducere Sirurile de obiecte (arrays): reprezinta cel mai eficient mod pentru a păstra obiecte. Neajuns: au dimensiunea fixata la compilare
Java.util: clase container: List, Set, Queue, Map
Pre-java SE5: containerele java pot memora orice tip de obiecte,
deci pot apărea erori De exemplu: ArrayList are metodele add si get definire utilizand clasa Object Erorile la regasirea obiectelor din container pot sa fie identificate doar la executie (ClassCastException)
Cluj-Napoca - 27 Noeimbrie 2017
Containere generice TipContainer<TipDeBaza> In container se pot păstra doar obiecte din tipul de bază Se obtine o eroare la compilare daca se incearcă stocarea unui obiect dintr-un alt tip Nu mai este necesară operatia de cast (conversie) la regasirea obiectelor
Operatii de efectuat la utilizarea containerelor
1. Definirea obiectului de tip container 2. Inserarea de obiecte in container (de ex. Metoda add) 3. Regasirea obiectelor (de ex. Metoda get) Daca sunt containere generice nu mai este nevoie de cast La containere pre-Java SE5, trebuie conversie
Cluj-Napoca - 27 Noeimbrie 2017
Tipuri de containere Java Colectii: memoreaza o secventa de elemente individuale, impreuna cu una sau mai multe reguli aplicate acestora List: memoreaza obiectele in ordinea in care au fost inserate Set: nu se permit obiecte duplicat Queue: regaseste elementele după ordinea furnizata de regula de insiruire Map: reprezinta grupuri de perechi de tip (cheie, valoare). Intr-un Map se regaseaste un obiect (valoarea) prin furnizarea cheii Collection, List, Set, Queue si Map reprezinta interfete
Lucrul cu containerele Tiparirea acestora: metoda toString sortare: metoda sort
Liste: 2 tipuri de liste
ArrayList: lista implementata cu un sir. Permite operatii rapide pentru access random la elemente. Operatiile de inserare si stergere de la mijlocul listei sunt costisitoare LinkedList: lista implementata cu lista dublu inlantuita. Permite operatii rapide de insertie si stergere de la mijlocul listei, insa operatiile de regasirea aleatoare sunt costisitoare
Cluj-Napoca - 27 Noeimbrie 2017
Iteratori Este un design pattern Un obiect de tip iterator este asociat unei colectii si permite regasirea ordonata a obiectelor din colectia respectiva Metoda iterator() a unei colectii Metoda next() a obiectului iterator: produce urmatorul element din colectie Metoda hasNext(): interogheaza daca mai sunt elemente neiterate Metoda remove(): sterge ultimul element iterat din colectie
Iteratorii pot produce elementele colectiei doar intr-o singura directie
ListIterator: furnizat doar de interfata List, poate parcurge elementele colectiei in ambele directii