Java ni­me­kir­jad sobivad eriti hästi olu­kor­da­desse, kus and­me­ko­gumi suurus ei ole algusest peale selge või kui suurus võib aja jooksul muutuda. Näitame teile konk­reet­seid näiteid Java ni­me­kir­jade ka­su­ta­mise kohta ning toi­min­guid, mida nendega teha saab.

Milleks saab Java nimekirju kasutada?

Loendid on Java prog­ram­mee­ri­mise üks põhilisi and­me­st­ruk­tuure ja neid saab kasutada mitmel viisil. Need si­sal­da­vad elemente, mis on jär­jes­ta­tud kindlas jär­je­kor­ras. Loendisse saab lisada, muuta, kustutada või otsida elemente. Java loendid võivad sisaldada eri­ne­va­tesse klas­si­desse kuuluvaid objekte. Samuti on võimalik sal­ves­tada dub­lee­ri­tud elemente või null-elemente. Lisaks toetavad Java loendid ge­nee­rilisi klasse ja meetodeid, tagades tüü­bi­kind­luse.

Loendeid saab kasutada and­me­baasi­ra­ken­dus­tes. Siin ka­su­ta­takse neid and­me­ba­asi pä­rin­gu­test saadud suurte and­me­ko­gu­mite sal­ves­ta­miseks ja neile juur­de­pääs­uks. Graa­fi­lis­tes ka­su­ta­ja­lii­des­tes ka­su­ta­takse Java loendeid sageli ele­men­tide loendi ku­va­miseks, näiteks rippmenüü valikute või veebipoe erinevate toodete puhul.

Java loendid on samuti asen­da­ma­tud algo­ritmi­des ja and­me­st­ruk­tuu­ri­des. Neid ka­su­ta­takse sor­tee­ri­mis­algo­ritmi­des, ot­sin­gualgo­ritmi­des ning virna- ja jär­je­kor­ra­struk­tuu­ri­des. Võr­gu­ra­ken­dus­tes võivad loendid aidata hõl­bus­tada ühenduste ja pistikute haldamist.

Millised loen­da­mise meetodid on Java-s olemas?

Java loendid kuuluvad Col­lec­tion-lii­de­sesse ja need tuleb importida paketist java.util. Java ArrayList, Lin­ked­List, Vector ja Stack pakuvad mit­me­su­gu­seid ra­ken­dus­klasse, mille hulgast saate valida. Loendite erinevaid instantsi saate dek­la­ree­rida järgmise koodiga:

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

Siin on mõned olu­li­se­mad meetodid, mida saate Java-ni­me­kir­jade jaoks kasutada:

  1. int size(): Määrab loendi ele­men­tide arvu
  2. void add(int index, E element): Lisab elemendi kindlasse po­sit­siooni
  3. boolean isEmpty(): Kont­rol­lib, kas nimekiri on tühi
  4. void clear(): Eemaldab kõik elemendid ni­me­kir­jast
  5. boolean contains(Object o): Tagastab väärtuse true, kui objekt o on ni­me­kir­jas
  6. boolean add(E e): Lisab elemendi nimekirja lõppu
  7. boolean remove(Object o): Eemaldab elemendi esimese esinemise
  8. E get(int index): Asendab või lisab elemendi määratud indeksile
  9. E set(int index, E element): Asendab või lisab elemendi määratud indeksile
  10. Object[] toArray(): Tagastab massiivi, mis sisaldab nimekirja elemente
  11. List<E> subList(int fromIndex, int toIndex): Salvestab kõik elemendid määratud in­ter­valli piires
  12. default void replaceAll(UnaryOperator<E> operator): Java 8 stan­dard­meetod, mis rakendab ühe­ar­gu­men­tilisi Java ope­raa­to­reid igale ele­men­dile ja asendab seejärel iga elemendi ope­rat­siooni tu­le­mu­sega.

Kuidas kasutada Java nimekirju

Allpool tut­vus­tame tavalisi meetodeid, mida ka­su­ta­takse Java-ni­me­kir­ja­dega töö­ta­misel. Nende hulka kuuluvad mas­sii­vide tei­sen­da­mine ni­me­kir­ja­deks ja vastupidi, samuti ele­men­tide sor­tee­ri­mine, otsimine ja muutmine.

Muuda massiiv ni­me­kir­jaks

Massiivi ni­me­kir­jaks tei­sen­da­miseks võite massiivi läbi käia silmuste abil ja lisada elemendid nimekirja ükshaaval meetodi add() abil.

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

Selle tu­le­mu­seks on väljund:

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

Muuda nimekiri mas­sii­viks

Meetodiga toArray() saate tei­sen­dada loendi mas­sii­viks:

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

Väljundis näete, et massiivi ja loendi elemendid on identsed:

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

Java nimekirja ele­men­tide kutsumine ja muutmine

Meetodiga get() saate juur­de­pääsu ele­men­dile kindla indeksiga. Meetodiga set() saate asendada elemendi teise ele­men­diga nimekirja kindlas kohas.

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

Kuna Java-s algab loen­da­mine indeksist 0, saame järgmise tulemuse:

Element at index 1: b
a
b
d
Java

Sorteeri nimekiri

Java nimekirja saab sor­tee­rida, kasutades Col­lec­tions-klassi .sort() meetodit. Nimekirja saab läbi käia silmuse abil ja trükkida elemendid ükshaaval konsooli:

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 ni­me­kir­jas olevad numbrid kuvatakse ekraanil väik­sei­mast suurima järgi:

4
26
57
92
Java

95991e50aeda50c32cb3b3f2112a5943

d8a1591df4562b7b93743d4591732bef

39ff5b6d36ba97b3c26d6bb337ccf978

7a914977fa7ac542c991272624ac7d75

Go to Main Menu