# Kas yra Java sąrašas?

Java sąrašai ypač tinka tais atvejais, kai **duomenų rinkinio dydis** nėra aiškus nuo pat pradžių arba jei tikimasi, kad jo dydis laikui bėgant keisis. Pateiksime konkrečius pavyzdžius, kaip naudoti Java sąrašus, taip pat operacijas, kurias su jais galima atlikti.

## Kam gali būti naudojami Java sąrašai?

Sąrašai yra viena iš pagrindinių duomenų struktūrų Java programavime ir gali būti naudojami įvairiais būdais. Juose yra elementai, kurie išdėstyti **tvarkinga seka**. Sąraše galite pridėti, keisti, trinti ar ieškoti elementų. Java sąrašuose gali būti objektų, priklausančių skirtingoms klasėms. Taip pat galima saugoti pasikartojančius elementus ar nulinės vertės elementus. Be to, Java sąrašai palaiko bendrąsias klases ir metodus, užtikrinančius tipų saugumą.

Sąrašai gali būti naudojami duomenų bazių programose. Čia jie naudojami **dideliems duomenų rinkiniams iš duomenų bazių užklausų** saugoti ir prieiti prie jų. Grafinėse vartotojo sąsajose Java sąrašai dažnai naudojami elementų sąrašui rodyti, pavyzdžiui, išskleidžiamajame meniu esančioms parinktims arba įvairiems internetinės parduotuvės prekėms.

Java sąrašai taip pat yra nepakeičiami algoritmuose ir duomenų struktūrose. Jie naudojami **rūšiavimo algoritmuose, paieškos algoritmuose ir stekų bei eilių struktūrose**. Tinklo programose sąrašai gali palengvinti ryšių ir lizdų valdymą.

## Kokius sąrašų metodus turi Java?

Java sąrašai priklauso Collection sąsajai ir turi būti importuojami iš ***java.util*** paketo. Naudojant [Java ArrayList](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-masyvas/), LinkedList, Vector ir Stack, galite rinktis iš įvairių įgyvendinimo klasių. Galite deklaruoti skirtingus sąrašų egzempliorius naudodami šį kodą:

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

Čia pateikiami kai kurie svarbiausi metodai, kuriuos galite naudoti Java sąrašams:

1. `int size()`: Nustato elementų skaičių sąraše
2. `void add(int index, E element)`: Prideda elementą tam tikroje pozicijoje
3. `boolean isEmpty()`: Patikrina, ar sąrašas yra tuščias
4. `void clear()`: Pašalina visus elementus iš sąrašo
5. `boolean contains(Object o)`: Grąžina vertę `true`, jei objektas `o` yra sąraše
6. `boolean add(E e)`: Prideda elementą į sąrašo pabaigą
7. `boolean remove(Object o)`: Pašalina pirmąjį elemento pasikartojimą
8. `E get(int index)`: Pakeičia arba įterpia elementą nurodytu indeksu
9. `E set(int index, E element)`: Pakeičia arba įterpia elementą nurodytu indeksu
10. `Object[] toArray()`: Grąžina masyvą, kuriame yra sąrašo elementai
11. `List<E> subList(int fromIndex, int toIndex)`: Užfiksuoja visus elementus nurodytame intervale
12. `default void replaceAll(UnaryOperator<E> operator)`: Standartinis metodas Java 8, kuris taiko vienetinį Java operatorius kiekvienam elementui ir tada pakeičia kiekvieną elementą operacijos rezultatu.

## Kaip naudoti Java sąrašus

Toliau pateiksime dažniausiai naudojamus metodus dirbant su Java sąrašais. Tai yra masyvų **konvertavimas** į sąrašus ir atvirkščiai, taip pat elementų rūšiavimas, paieška ir keitimas.

### Paversti masyvą į sąrašą

Norėdami konvertuoti masyvą į sąrašą, galite kartoti masyvą naudodami ciklus ir po vieną pridėti elementus į sąrašą naudodami `add()` metodą.

```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);
      }
    }
```

Tai duoda tokį rezultatą:

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

### Konvertuoti sąrašą į masyvą

Naudodami metodą `toArray()` galite konvertuoti sąrašą į masyvą:

```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);
      }
    }
```

Išvestyje matyti, kad masyvo ir sąrašo elementai yra identiški:

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

### Skambinkite ir keiskite elementus Java sąraše

Naudodami `get()` metodą, galite pasiekti elementą tam tikrame indekse. `set()` metodas leidžia **pakeisti elementą kitu elementu** tam tikroje sąrašo pozicijoje.

```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);
      }
    }
```

Kadangi skaičiavimas Java kalboje prasideda nuo indekso 0, gauname tokį rezultatą:

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

### Rūšiuoti sąrašą

Java sąrašą galite rūšiuoti naudodami `.sort()` metodą iš Collections klasės. Sąrašą galite kartoti naudodami kilpą ir elementus spausdinti į konsolę po vieną:

```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);
      }
    }
```

Java sąraše esantys skaičiai ekrane rodomi nuo mažiausio iki didžiausio:

```Java
4
26
57
92
```


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-sarasas/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-sarasas/) for AI/LLM consumption.