Sunteți pe pagina 1din 7

Limbaje de programare – curs 9 -

- Informatică Economică, an III –

Colectii

Gheorghe Cosmin Silaghi

Cluj-Napoca - 27 Noeimbrie 2017


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

List<Apple> apples = new ArrayList<Apple>();


List<Apple> apples = new LinkedList<Apple>();

In colectii se pot adauga grupuri de elemente


Collection.Arrays.asList() Collection.addAll()
Cluj-Napoca - 27 Noeimbrie 2017
Ierarhia de clase colectii

Cluj-Napoca - 27 Noeimbrie 2017


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

Cluj-Napoca - 27 Noeimbrie 2017

S-ar putea să vă placă și