Listy

Listy są to uporządkowane kolekcje elementów. Listy dostarczane w ramach biblioteki standardowej języka Java to klasy implementujące interfejs java.util.List<E> (java.util.List w Javie sprzed wersji 1.5). Najpopularniejsze implementacje list to klasy: java.util.ArrayList<E>java.util.LinkedList<E> i java.util.Vector<E>. Typowa deklaracja w Javie sprzed wersji 1.5 i utworzenie obiektu listy typu ArrayList wygląda następująco:

List myList = new ArrayList();

W nowych wersjach języka trzeba będzie jeszcze określić typ elementów. Jeśli przykładowo chcieli byśmy utworzyć listę obiektów typu String to napisalibyśmy:

List<String> myList = new ArrayList<String>();

albo:

List<String> myList = new LinkedList<String>();

albo:

List<String> myList = new Vector<String>();

Podstawowe operacje dostępne dla list to: dodawanie i usuwanie elementów, wyszukiwanie elementów na liście oraz sprawdzanie rozmiaru listy (tj. sprawdzanie ile elementów lista zawiera).

Operacja sprawdzania rozmiaru listy to ta sama operacja której używamy dla zbiorów, tj. operacja size(). Jest to zresztą operacja zdefiniowana w interfejsie Collection, z którego dziedziczą interfejsy ListSet oraz Queue, co oznacza, że wszystkie te kolekcje udostępniają metodę size().

Interfejs List definiuje dwie operacje dodawania elementów. Jednoargumentowa operacja add(E o) służy do dodawania elementów na pozycji zależnej od implementacji listy. W przypadku implementacji wymienionych powyżej (tj. ArrayListLinkedList Vector) dodawany element dołączany jest do końca listy. Dwuargumentowa operacja add(int index, E element) umożliwia określenie konkretnej pozycji na której należy wstawić dodawany element. Podobnie jak w przypadku tablic tak i w przypadku list pozycje są numerowane począwszy od zera, tj. aby dodać element na początku listy należy dodać ten element na pozycji 0. Ostatnią pozycją na której możemy dodać element jest pozycja równa rozmiarowi listy minus jeden. Aby dodać element na końcu listy utworzonej w którymś z powyższych przykładów możemy napisać:

myList.add("Ola");

albo:

myList.add(myList.size() – 1, "Ola");

Standardowa funkcjonalność wyszukiwania elementów na liście umożliwia odnalezienie pierwszego oraz ostatniego wystąpienia poszukiwanego elementu. Aby odnaleźć pierwsze wystąpienie elementu możemy użyć operacji indexOf(Object o). Aby odnaleźć ostatnie wystąpienie użyjemy operacji lastIndexOf(Object o). Obydwie te operacje zwracają liczbę typu int będącą indeksem na którym znajduje się poszukiwany element lub liczbę -1 jeśli lista ta nie zawiera szukanego elementu. Aby wyszukać element „Ola” na liście elementów typu String możemy napisać:

int firstOccurence = myList.indexOf("Ola");

if(firstOccurence != -1)
  System.out.println("Znaleziono na pozycji " + firstOccurence);
else
  System.out.println("Nie znaleziono");

Usuwać elementy listy możemy dwojako: podając element który należy usunąć albo indeks listy. Aby usunąć element znajdujący się na pewnej pozycji listy należy użyć operacji remove(int index). Operacja ta zwraca usunięty element. Aby usunąć element znany co do wartości użyjemy operacji remove(Object o) która zwraca wartość typu boolean informującą o statusie wykonania. Jeśli element został znaleziony to jest usuwany i zwracana jest wartość true. Jeśli lista nie zawierała takiego elementu zwracana jest wartość false.

0 0 votes
Daj ocenę