Java - List


Klase koje implementuju listu

Iz List interfejsa, ne možemo kreirati objekte. Da bismo koristili funkcionalnost interfejsa liste, možemo koristiti sljedeće klase:

  • ArrayList
  • LinkedList
  • Vector
  • Stack


Ove klase su definisane u okviru zbirke i implementuju interfejs liste.



Kako koristiti Listu?

U Javi moramo uvesti paket java.util.List da bismo koristili List.

// ArrayList implementacija Liste
List<String> list1 = new ArrayList<>();

// LinkedList implementacija Liste
List<String> list2 = new LinkedList<>();

Ovdje smo kreirali objekte list1 i list2 klasa ArrayList i LinkedList. Ovi objekti mogu koristiti funkcionalnosti interfejsa Liste.



Metode liste

Interfejs liste uključuje sve metode interfejsa kolekcije (Collection interface). To je zato što je Collection interfejs liste. Neke od najčešće korištenih metoda interfejsa za prikupljanje koje su takođe dostupno u interfejsu liste su:

  • add() - dodaje element na listu
  • addAll() - dodaje sve elemente jedne liste na drugu
  • get() - pomaže u nasumičnom pristupu elementima sa lista
  • iterator() - vraća objekat iteratora koji se može koristiti za sekvencijalni pristup elementima lista
  • set() - mijenja elemente liste
  • remove() - uklanja element sa liste
  • removeAll() - uklanja sve elemente sa liste
  • clear() - uklanja sve elemente sa liste (efikasnije od removeAll())
  • size() - vraća dužinu lista
  • toArray() - pretvara listu u niz
  • contains() - vraća true ako lista sadrži navedeni element


Implementacija interfejsa liste


1. Implementacija klase ArrayList

import java.util.List;
import java.util.ArrayList;

class Main {

    public static void main(String[] args) {
        // Kreiranje liste pomoću klase ArrayList
        List<Integer> numbers = new ArrayList<>();

        // Dodajte elemente na listu
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("List: " + numbers);

        // Pristupni elementu sa liste
        int number = numbers.get(2);
        System.out.println("Pristupljeno elementu: " + number);

        // Uklonite element sa liste
        int removedNumber = numbers.remove(1);
        System.out.println("Uklonjen element: " + removedNumber);
    }
}

Prikaz koda iz gornjeg primjera izgledaće ovako:

List: [1, 2, 3]
Pristupljeno elementu: 3
Uklonjen element: 2

2. Implementacija klase LinkedList

import java.util.List;
import java.util.LinkedList;

class Main {

    public static void main(String[] args) {
        // Kreiranje liste pomoću klase LinkedList
        List<Integer> numbers = new LinkedList<>();

        // Dodajte elemente na listu
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("List: " + numbers);

        // Pristupni elementu sa liste
        int number = numbers.get(2);
        System.out.println("Pristupljeno elementu: " + number);

        // Korištenje metode indexOf().
        int index = numbers.indexOf(2);
        System.out.println("Pozicija 3 je " + index);

        // Uklonite element sa liste
        int removedNumber = numbers.remove(1);
        System.out.println("Uklonjen element: " + removedNumber);
    }
}

Prikaz koda iz gornjeg primjera izgledaće ovako:

List: [1, 2, 3]
Pristupljeno elementu: 3
Pozicija 3 je 1
Uklonjen element: 2