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. Pa­teik­si­me konk­re­čius pa­vyz­džius, kaip naudoti Java sąrašus, taip pat ope­ra­ci­jas, kurias su jais galima atlikti.

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

Sąrašai yra viena iš pag­rin­di­nių duomenų struktūrų Java prog­ra­ma­vi­me 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ų, pri­klau­san­čių skir­tin­goms klasėms. Taip pat galima saugoti pa­si­kar­to­jan­čius elementus ar nulinės vertės elementus. Be to, Java sąrašai palaiko bendrą­sias klases ir metodus, už­tik­ri­nan­čius tipų saugumą.

Sąrašai gali būti naudojami duomenų bazių prog­ra­mo­se. Čia jie naudojami dideliems duomenų rin­ki­niams 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, pa­vyz­džiui, iš­sklei­džia­ma­ja­me meniu esančioms pa­rink­tims arba įvairiems in­ter­ne­ti­nės par­duo­tu­vės prekėms.

Java sąrašai taip pat yra ne­pa­kei­čia­mi al­go­rit­muo­se ir duomenų struk­tū­ro­se. Jie naudojami rūšiavimo al­go­rit­muo­se, paieškos al­go­rit­muo­se ir stekų bei eilių struk­tū­ro­se. Tinklo prog­ra­mo­se sąrašai gali pa­leng­vin­ti ryšių ir lizdų valdymą.

Kokius sąrašų metodus turi Java?

Java sąrašai priklauso Col­le­c­tion sąsajai ir turi būti im­por­tuo­ja­mi iš java.util paketo. Naudojant Java ArrayList, Lin­ked­List, Vector ir Stack, galite rinktis iš įvairių įgy­ven­di­ni­mo klasių. Galite dekla­ruo­ti skir­tin­gus sąrašų eg­zemp­lio­rius naudodami šį kodą:

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

Čia pa­tei­kia­mi kai kurie svar­biau­si 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 po­zi­ci­jo­je
  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 pa­si­kar­to­ji­mą
  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ž­fik­suo­ja visus elementus nu­ro­dy­ta­me intervale
  12. default void replaceAll(UnaryOperator<E> operator): Stan­dar­ti­nis metodas Java 8, kuris taiko vienetinį Java ope­ra­to­rius kiek­vie­nam elementui ir tada pakeičia kiekvieną elementą ope­ra­ci­jos rezultatu.

Kaip naudoti Java sąrašus

Toliau pa­teik­si­me daž­niau­siai nau­do­ja­mus metodus dirbant su Java sąrašais. Tai yra masyvų kon­ver­ta­vi­mas į sąrašus ir at­virkš­čiai, taip pat elementų rū­šia­vi­mas, paieška ir keitimas.

Paversti masyvą į sąrašą

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

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

Tai duoda tokį rezultatą:

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

Kon­ver­tuo­ti sąrašą į masyvą

Naudodami metodą toArray() galite kon­ver­tuo­ti sąrašą į masyvą:

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

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

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

Skam­bin­ki­te 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 po­zi­ci­jo­je.

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

Kadangi skai­čia­vi­mas Java kalboje prasideda nuo indekso 0, gauname tokį rezultatą:

Element at index 1: b
a
b
d
Java

Rūšiuoti sąrašą

Java sąrašą galite rūšiuoti naudodami .sort() metodą iš Col­le­c­tions klasės. Sąrašą galite kartoti naudodami kilpą ir elementus spaus­din­ti į konsolę po vieną:

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

Java sąraše esantys skaičiai ekrane rodomi nuo mažiausio iki di­džiau­sio:

4
26
57
92
Java

95991e50aeda50c32cb3b3f2112a5943

d8a1591df4562b7b93743d4591732bef

39ff5b6d36ba97b3c26d6bb337ccf978

7a914977fa7ac542c991272624ac7d75

801469d6a4728324c120e13355e0e1eb

Go to Main Menu