czwartek, 27 września 2018

Java listy tablicowe


Listy tablicowe w Java


Jeśli nie wiesz, jak wiele pozycji znajduję się w tablicy, można użyć czegoś, co nazywa się ArrayList. ArrayList jest dynamiczną strukturą danych, co oznacza, że elementy mogą być dodawane i usuwane z listy. Zwykła tablica w Javie jest statyczną strukturą danych, ponieważ jesteśmy skazani na początkowy rozmiar tablicy.

Aby skonfigurować ArrayList, trzeba najpierw zaimportować pakiet z java.util library:

import java.util.ArrayList;

Następnie można utworzyć nowy obiekt ArrayList:

ArrayList listTest = new ArrayList( );

Należy zauważyć, że nie trzeba żadnych nawiasów kwadratowych tym razem.
Skoro masz nowy obiekt ArrayList, można dodać elementy do niego za pomocą metody add:

listTest.add( "Pierwsza pozycja" );
listTest.add( "Druga pozycja" );
listTest.add( "Trzecia pozycja" );
listTest.add( 7 );

Pomiędzy nawiasami okrągłymi można umieścić, to co chcesz dodać do ArrayList. Możesz dodać tylko obiekty. Pierwsze trzy elementy, które dodaliśmy do listy powyżej są obiektami String. Czwarty element jest liczbą. Ale będzie to obiekt typu Integer, a nie prymitywny typu danych int.

Do elementów na liście, można się odwoływać, za pomocą numeru indeksu i za pomocą metody get:

listTest.get( 3 )

Ta linia będzie elementem 3 na liście. Indeks numerów rozpoczyna się od zera, więc to będzie czwarty element.

Można również usunąć elementy z ArrayList. Można użyć numeru indeksu:

listTest.remove(2);

Lub można użyć wartości na liście:

listTest.remove( "Druga pozycja" );

Usunięcie elementu spowoduje zmianę rozmiaru ArrayList, tak więc trzeba być ostrożnym, gdy próbuje się uzyskać pozycję na liście przy użyciu numeru indeksu. Jeśli usunęliśmy pozycje 2, wtedy nasza powyższa lista będzie zawierać tylko 3 pozycje. Próbując uzyskać pozycję z numerem indeksu 3 spowodujemy błąd.

Aby przejść przez każdy element w swoim ArrayList można ustawić coś, co nazywa się Iterator. Tą klasę można również znaleźć w bibliotece java.util:

import java.util.Iterator;

Następnie można podłączyć ArrayList do nowego obiektu Iterator:

Iterator it = listTest.iterator( );

Powyższe wyrażenie tworzy nowy obiekt Iterator o nazwie it, który może być używany, aby przejść przez elementy w ArrayList o nazwie listTest. Powodem użyciu obiektu Iterator jest, to że ma metody zwane next i hasNext. Można z nich korzystać w pętli:

while ( it.hasNext( ) ) {
System.out.println( it.next( ) );
}

Metoda hasNext zwraca wartość logiczną. Wartość będzie fałszywa, jeśli nie ma więcej elementów w ArrayList. Metoda next może być używana, aby przejść przez wszystkie elementy na liście.

Aby przetestować teorię spróbuj wykonać poniższy kod:

package uazztablice;
 
import java.util.ArrayList;
import java.util.Iterator;
 
public class TabliceLista {
    
    public static void main(String[] args){
        
        ArrayList listTest = new ArrayList();
        
        listTest.add("Pierwsza pozycja");
        listTest.add("Druga pozycja");
        listTest.add("Trzecia pozycja");
        listTest.add(7);
        
        Iterator it = listTest.iterator();
        
        while (it.hasNext()){
            System.out.println(it.next());
        }
        
        //Usunięcie pozycji z listy
        listTest.remove("Druga pozycja");
        
        //Wyświetlenie całej listy
        System.out.println("Cała lista = " + listTest);
        
        //Przejdź do pozycji o numerze indeksu 1
        System.out.println("Pozycja 1 = " + listTest.get(1));
    }
}

Zwróć uwagę na linię, która wypisuje całą listę:

System.out.println( "Cała lista=" + listTest );

Gdy kod zostanie uruchomiony, wyświetli się następujące okno wyjściowe:

Pierwsza pozycja
Druga pozycja
Trzecia pozycja
7
Cała lista = [Pierwsza pozycja, Trzecia pozycja, 7]
Pozycja 1 = Trzecia pozycja

Podsumowując, należy użyć ArrayList, gdy nie jesteś pewien, ile elementów będzie na liście elementów.



Brak komentarzy:

Prześlij komentarz