# Kaj je Java seznam?

Java seznami so še posebej primerni za scenarije, v katerih **velikost podatkovnega niza** ni jasna že od začetka ali če se pričakuje, da se bo velikost sčasoma spremenila. Pokazali vam bomo konkretne primere, kako uporabljati Java sezname, ter operacije, ki jih lahko z njimi izvajate.

## Za kaj se lahko uporabljajo Java seznami?

Seznami so ena od temeljnih podatkovnih struktur v programiranju v Javi in se lahko uporabljajo na različne načine. Vsebujejo elemente, ki so razporejeni v **urejenem zaporedju**. Elementom v seznamu lahko dodajate, jih spreminjate, brišete ali poizvedujete. Seznami v Javi lahko vsebujejo objekte, ki pripadajo različnim razredom. Prav tako je mogoče shranjevati podvojene elemente ali ničelne elemente. Poleg tega seznami v Javi podpirajo generične razrede in metode, kar zagotavlja varnost tipov.

Seznami se lahko uporabljajo za aplikacije z bazami podatkov. Tukaj se uporabljajo za shranjevanje in dostop do **velikih naborov podatkov iz poizvedb v bazah podatkov**. V grafičnih uporabniških vmesnikih se seznami Java pogosto uporabljajo za prikaz seznama elementov, kot so možnosti v spustnem meniju ali različni izdelki v spletni trgovini.

Java seznami so nepogrešljivi tudi v algoritmih in podatkovnih strukturah. Uporabljajo se v **algoritmih za razvrščanje, algoritmih za iskanje ter strukturah zalog in čakalnih vrst**. V omrežnih aplikacijah lahko seznami olajšajo upravljanje povezav in vtičnic.

## Katere metode za sezname ima Java?

Java seznami spadajo v vmesnik Collection in jih je treba uvoziti iz paketa ***java.util***. Z [Java ArrayList](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-arraylist/), LinkedList, Vector in Stack lahko izbirate med različnimi razrednimi implementacijami. Različne instance seznamov lahko deklarirate z naslednjo kodo:

```Java
List linkedList = new LinkedList(); // LinkedList
List arrayList = new ArrayList(); // ArrayList
List vecList = new Vector(); // Vector
List stackList = new Stack(); //Stack
```

Tukaj je nekaj najpomembnejših metod, ki jih lahko uporabite za sezname v Javi:

1. `int size()`: Določi število elementov na seznamu
2. `void add(int index, E element)`: Dodaja element na določeno mesto
3. `boolean isEmpty()`: Preveri, ali je seznam prazen
4. `void clear()`: Odstrani vse elemente s seznama
5. `boolean contains(Object o)`: Vrne vrednost `true`, če je objekt `o` na seznamu
6. `boolean add(E e)`: Dodaja element na konec seznama
7. `boolean remove(Object o)`: Odstrani prvi pojav elementa
8. `E get(int index)`: Nadomesti ali vstavi element na določen indeks
9. `E set(int index, E element)`: Nadomesti ali vstavi element na določen indeks
10. `Object[] toArray()`: Vrne niz, ki vsebuje elemente iz seznama
11. `List<E> subList(int fromIndex, int toIndex)`: Zajame vse elemente znotraj določenega intervala
12. `default void replaceAll(UnaryOperator<E> operator)`: Standardna metoda v Javi 8, ki na vsak element uporabi enostavne Java operacije in nato vsak element nadomesti z rezultatom operacije.

## Kako uporabljati sezname Java

V nadaljevanju bomo prikazali pogoste metode, ki se uporabljajo pri delu z Java seznami. Te vključujejo **pretvarjanje** nizov v sezname in obratno, kot tudi razvrščanje, pridobivanje in spreminjanje elementov.

### Pretvori niz v seznam

Da bi pretvorili niz v seznam, lahko z zankami ponovite niz in elemente enega po enega dodate na seznam z metodo `add()`.

```Java
import java.util.*;
    public class ArrayToList{
      public static void main(String args[]){
      // Creating Array
      String[] colors={"blue","green","red","yellow"};
      System.out.println("Array: "+Arrays.toString(colors));
      //Converting Array to List
      List<String> list=new ArrayList<String>();
      for(String color: colors){
        list.add(color);
      }
      System.out.println("List: "+list);
      }
    }
```

Rezultat je naslednji:

```Java
Array: [blue, green, red, yellow]
List: [blue, green, red, yellow]
```

### Pretvori seznam v niz

Z metodo `toArray()` lahko seznam pretvorite v niz:

```Java
import java.util.*;
    public class ListToArray{
      public static void main(String args[]){
       List<String> days = new ArrayList<String>();
       days.add("Monday");
       days.add("Tuesday");
       days.add("Wednesday");
       days.add("Thursday");
       days.add("Friday");
       days.add("Saturday");
       days.add("Sunday");
       // Converting ArrayList to Array
       String[] array = days.toArray(new String[days.size()]);
       System.out.println("Array: "+Arrays.toString(array));
       System.out.println("List: "+days);
      }
    }
```

V izhodu lahko vidite, da so elementi v nizu in seznamu identični:

```Java
Array: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
List: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
```

### Klicanje in spreminjanje elementov v seznamu Java

Z metodo `get()` lahko dostopate do elementa na določenem indeksu. Metoda `set()` vam omogoča, da **element zamenjate z drugim elementom** na določeni poziciji v seznamu.

```Java
import java.util.*;
    public class ListExample{
      public static void main(String args[]){
      // Creating a List
      List<String> letters=new ArrayList<String>();
      // Adding elements
      letters.add("a");
      letters.add("b");
      letters.add("c");
      // get()
      System.out.println("Element at index 1: "+letters.get(1));
      // set()
      letters.set(2, "d");
      for(String letter: letters)
      System.out.println(letter);
      }
    }
```

Ker se štetje v Javi začne z indeksom 0, dobimo naslednji rezultat:

```Java
Element at index 1: b
a
b
d
```

### Razvrsti seznam

Java seznam lahko razvrstite z metodo `.sort()` iz razreda Collections. Seznam lahko preberete z zanko in elemente enega po enega natisnete na konzolo:

```Java
import java.util.*;
    class SortArrayList{
      public static void main(String args[]){
      // Creating a list of numbers
      List<Integer> numbers=new ArrayList<Integer>();
      numbers.add(4);
      numbers.add(57);
      numbers.add(92);
      numbers.add(26);
      // Sorting
      Collections.sort(numbers);
      for(Integer number: numbers)
        System.out.println(number);
      }
    }
```

Številke v seznamu Java so prikazane na zaslonu od najmanjše do največje:

```Java
4
26
57
92
```


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-seznam/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-seznam/) for AI/LLM consumption.