Zbiory

Zbiory są to klasy implementujące interfejs java.util.Set. Najpopularniejsze implementacje dostępne w ramach standardowej biblioteki Javy to java.util.HashSet oraz java.util.TreeSet. Typowa deklaracja zmiennej i utworzenie obiektu zbioru (przy założeniu że zaimportowaliśmy interfejs Set i klasy HashSet oraz TreeSet) wygląda następująco:

Set mySet = new HashSet();

albo:

Set mySet = new TreeSet();

Podstawowe operacje dostępne dla zbiorów to dodawanie i usuwanie elementów, sprawdzanie czy dany element do zbioru należy oraz sprawdzanie liczności zbioru (tj. ile zawiera elementów).

Operacja dodawania to operacja add(…). Operacja ta dodaje element do zbioru tylko i wyłącznie wtedy, gdy takiego elementu w zbiorze jeszcze nie było – zbiory nie mogą zawierać przecież duplikatów. Operacja add(…) zwraca wartość typu boolean, która informuje o tym, czy element został dodany czy nie. Jeśli więc dodawanego elementu w zbiorze nie było, to zostanie on dodany a operacja zwróci wartość true. W przeciwnym wypadku zwróci wartość false, co oznacza, że element równy dodawanemu już w zbiorze był. Aby dodać element do zbioru mySet utworzonego w poprzednim przykładzie możemy napisać:

boolean isAdded = mySet.add(1);

Operacja służąca do usuwania elementów zbioru to operacja remove(…). Usuwa ona element ze zbioru, jeśli oczywiście taki element do zbioru należał. Podobnie jak operacja add(…) zwraca ona wynik typu boolean informujący o tym, czy akcja została faktycznie wykonana, tj. czy element został usunięty. Jeśli więc w wyniku wywołania operacji remove(…) usunięto element ze zbioru to zwraca ona wartość true; w przeciwnym wypadku zwraca wartość false. Aby usunąć element dodany do zbioru w poprzednim przykładzie możemy napisać:

boolean isRemoved = mySet.remove(1);

Aby sprawdzić czy zbiór zawiera pewien element wywołujemy operację contains(…). Operacja ta zwraca wartość typu boolean równą true jeśli interesujący nas obiekt do zbioru należy a false w przeciwnym wypadku. Aby więc stwierdzić czy do naszego zbioru, dostępnego za pośrednictwem zmiennej mySet, należy obiekt reprezentujący liczbę 1 możemy napisać:

boolean contains = mySet.contains(1);
  
if(contains)
  System.out.println("Jest!");

Aby sprawdzić ile elementów zawiera zbiór wywołujemy operację size(). Operacja ta zwraca wartość typu int, równą liczbie elementów zbioru. Aby zbadać ile elementów zawiera zbiór dostępny za pośrednictwem zmiennej mySet możemy napisać:

int setSize = mySet.size();
  
System.out.println("Zbiór zawiera " + setSize + " elementów!");

Przetestuj swoją wiedzę z zakresu zbiorów – spróbuj rozwiązać zadanie „Zbiory, zad. 1”. Pytaj i dyskutuj o tym zadaniu w komentarzu!

0 0 votes
Daj ocenę