Java - Collections Framework


Java collections framework (okvir zbirki) pruža skup interfejsa i klasa za implementaciju različitih struktura podataka i algoritama. Na primjer, klasa LinkedList okvira zbirki omogućava implementaciju dvostruko povezane strukture podataka popisa.



Interfejs zbirki FrameWork (Interfaces of Collections FrameWork)

Okvir zbirki u Java nudi različite interfejse. Ova interfejs uključuju nekoliko metoda za izvođenje različitih operacija nad zbirkama.




U sljedećim lekcijama detaljno ćemo naučiti o ovim interfejsima, njihovim pod-interfejsima i implementaciji u različite klase. Ukratko u ovoj lekciji naučimo o najčešće korištenim interfejsima.



Java Collection Interface

Interfejs zbirke (Collection Interface) je korijenski interfejs hijerarhije okvira zbirki. Java ne nudi direktnu implementaciju interfesja Collection, ali pruža implementacije svojih pod-intefejsa kao što su: List, Set i Queue. Ljudi se često zbune između okvira zbirki (Collections Framework) i interfejsa zbirke (Collection Interface). Interfejs zbirke je korijenski interfejs okvira zbirki. Okvir uključuje i druge interfejse: Map i Iterator. Ovi interfejsi mogu imati i pod-interfejse.



Zašto Collections Framework?

Okvir zbirki (Collections Framework) Jave pruža različite strukture podataka i algoritme koji se mogu direktno koristiti. Ovo ima dvije glavne prednosti:

  • Ne moramo pisati kod za ručnu implementaciju ovih struktura podataka i algoritama.
  • Naš kod će bit mnogo učinkovitiji, jer je okvir zbirki visoko optimiziran.

Štoviše, okvir zbirki (Collections Framework) nam omogućava korištenje određene strukture podataka za određenu vrstu podataka. Evo nekoliko primjera:

  • Ako želimo da naši podaci budu jedinstveni, tada možemo koristiti interfejs Set koje pruža okvir zbirki.
  • Za spremanje podataka u parove ključ/vrijednost (key/value) možemo koristiti interfejs Map.
  • Klasa ArrayList pruža funkcionalnost nizova s promjenom veličine.

Primjer: ArrayList klasa zbirki

Prije nego završimo ovu lekciju, uzmimo primjer klase ArrayList okvira zbirki. Klasa ArrayList nam omogućava stvaranje polja s promjenjivom veličinom. Klasa implementuje interfejs List (koje je pod-interfejs interfejsa Collection).

// Collections framework je u paketu java.util
import java.util.ArrayList;

class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        // Dodavanje elemenata
        animals.add("Pas");
        animals.add("Mačka");
        animals.add("Konj");

        System.out.println("ArrayList: " + animals);
    }
}

Prikaz koda iz gornjeg primjera izgledaće ovako:

ArrayList: [Pas, Mačka, Konj]

U kasnijim lekcijama ćemo pomoću primjera detaljno učiti o okviru zbirki - collections framework (njegovim interfejsima i klasama).