AiSD_2008_03m.pdf
(
352 KB
)
Pobierz
Wyklad_03 - Podstawowe struktury dynamicznex
2008-11-04
Podstawowe struktury dynamiczne
Algorytmy i struktury danych
Wykład 3.
Rok akademicki: 2008/2009
Struktura dynamiczna
•
Struktura dynamiczna – struktura, która:
–
tworzona jest w programie poprzez jawne użycie odpowiedniej
instrukcji (np. operatora new),
–
może zmieniać swoją wielkość – liczbę elementów składowych (zmiana
ilości zajmowanej pamięci operacyjnej),
–
jej likwidacja prowadzi do odzyskania zajmowanej przez nią pamięci.
2
1
2008-11-04
Struktury dynamiczne w języku Java
•
kolekcja (Collection) - grupa obiektów (obiekty mogą się powtarzać),
•
zbiór (Set) - grupa elementów (obiekty nie mogą się powtarzać),
•
zbior posortowany (SortedSet) - jak zbiór, ale kolejność elementów jest
określona, możliwe jest pobranie następnego lub poprzedniego elementu
zbioru (np. uporządkowany alfabetycznie zbiór liter lub zbiór łańcuchów),
•
lista (List) - kolekcja, w której elementy mogą się powtarzać, elementy listy
są uporządkowane; dostęp do nich jest również możliwy poprzez indeks.
Rodzaje struktur listowych: stos, kolejka, lista jednokierunkowa, lista
dwukierunkowa, lista cykliczna,
•
tablica asocjacyjna (Map) – zbiór par (klucz, wartość), dostęp do elementu
jest możliwy po podaniu klucza,
•
posortowana tablica asocjacyjna (SortedMap) - tablica asocjacyjna
zawierająca elementy uporządkowane według klucza.
•
drzewa i grafy
ã
kolejne wykłady!!!
3
Definicja struktur dynamicznych w postaci interfejsów
4
2
2008-11-04
Interfejs Collection
5
Interfejs Iterator
public interface Iterator {
boolean hasNext();
Object next();
void remove();
}
6
3
2008-11-04
Wykorzystanie iteratorado usuwania elementów
Collection collection = ...;
Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
Object element = iterator.next();
if (removalCheck(element)) {
iterator.remove();
}
}
7
Klasa AbstractCollection
•
public abstract class AbstractCollection extends Object
implements Collection
•
przy tworzeniu kolekcji niezbędne jest:
–
określenie sposobu przechowywania danych
–
zdefiniowanie metody iterator()
–
zdefiniowanie metody size()
–
zdefiniowanie metody add() - dostępna metoda add() generuje
wyjątek UnsupportedOperationException
–
zdefiniowanie konstruktorów: Kolekcja() oraz Kolekcja(Collection
c)
8
4
2008-11-04
Kolekcja –przykład 1/6
import java.util.Collection;
import java.util.AbstractCollection;
import java.util.Iterator;
import java.util.NoSuchElementException;
class KolekcjaLiterA extends AbstractCollection implements Iterator
{
private int ileLiter;
private int aktualnaLitera;
private boolean czyMoznaUsunac;
KolekcjaLiterA()
{
}
ileLiter = 0;
czyMoznaUsunac = false;
aktualnaLitera = 0;
9
Kolekcja –przykład 2/6
KolekcjaLiterA(Collection c) {
addAll(c);
}
public Iterator iterator() {
aktualnaLitera = 0;
return this;
}
public boolean hasNext() {
return (aktualnaLitera < ileLiter);
}
10
5
Plik z chomika:
szuro1
Inne pliki z tego folderu:
Wszechswiat2007_7-9_Tykarski.pdf
(2354 KB)
WM_2008_04m.pdf
(422 KB)
WM_2008_03m.pdf
(176 KB)
WM_2008_02m.pdf
(201 KB)
WM_2008_01m.pdf
(151 KB)
Inne foldery tego chomika:
Ajax
Algorytmy
APLETY
Dokumentacja
ECLIPSE
Zgłoś jeśli
naruszono regulamin