Informatyka I Wykład 4. Tablice. Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018
Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada własną wartość oraz unikatowy indeks T nazwa tablicy wartość T[0] T[1] T[2] T[n-1] indeks 0 1 2 n-1 n liczba elementów tablicy
Deklaracja tablicy Obowiązkowo należy wskazać: Nazwę tablicy (nazwa zmiennej tablicowej) Typ danych elementów tablicy Opcjonalnie: Liczba elementów tablicy Wartości elementów tablicy Tablicowy typ danych jest złożonym typem danych
Tworzenie obiektu tablicy Tablice są złożonym typem danych Przy tworzeniu obiektu tablicy należy posłużyć się konstrukcją new oraz wskazać jej rozmiar Rozmiar tablicy może być obliczany w trakcie działania programu (np. wprowadzany z klawiatury)
Diagram deklaracji tablicy Typ danych [ ] Nazwa zmiennej ; = new Typ danych [ Rozmiar ]
Tworzenie obiektu tablicy przez wskazanie wartości jej elementów Tablica może być zadeklarowana poprzez podanie wartości jej elementów ale wyłącznie w momencie deklarowania zmiennej tablicowej
Rozmiar tablicy Liczbę elementów w tablicy można uzyskać poprzez pole.length zmiennej tablicowej
Elementy tablicy Wszystkie elementy tablicy reprezentują jednakowy typ danych Typem danych może być dowolny typ języka Java (prosty lub złożony) Elementy tablicy są numerowane od zera Dla tablicy z N elementów: Indeks pierwszego elementu = 0 Indeks ostatniego elementu = (N 1) Próba wykroczenia poza granice tablicy skutkuje błędem typu ArrayIndexOutOfBoundsException
Adresacja elementów tablicy Adresacja elementu tablicy odbywa się poprzez jego indeks w tablicy [w nawiasach kwadratowych] oraz nazwę tablicy Element tablicy zachowuje się jako zwykła zmienna, tj. może wystąpić po obu stronach instrukcji przypisania T [ i ] Nazwa tablicy Indeks elementu
Typowe operacje na tablicach Zapis lub odczyt wartości elementu Wyświetlanie zawartości całej tablicy Zmienna tablicowa może być użyta np. w instrukcji System.out.println() Wynik zależy od typu danych elementów tablicy Operacja przypisania wartości A=B dla zmiennych typu tablicowego (złożonego) działa inaczej niż w przypadku zmiennej typu prostego: obie zmienne będą wskazywały na tę samą tablicę w pamięci
Tablice wielowymiarowe Tablica może posiadać wiele wymiarów Każdy wymiar ma własny indeks T [n] [m] [k] Adresacja pojedynczej wartości odbywa się za pomocą konstrukcji T [ indeks 1] [indeks 2].. [indeks n]
Deklaracja tablicy wielowymiarowej poprzez wartości jej elementów
Często wykonywane operacje na tablicach Wyszukiwanie elementu tablicy o wskazanej / minimalnej / maksymalnej wartości Sortowanie elementów tablicy Złączenie tablic
Algorytm sortowania bąbelkowego begin n = 0; zmiany = false; n+1 < T.length false false T[n] > T[n+1] true true zmiany? false true T[n] T[n+1]; n++; zmiany = true; end
Tablice dynamiczne Rozmiar zwykłej tablicy nie może być zmieniony po jej zadeklarowaniu Jeśli z algorytmu wprost nie wynika maksymalna liczba elementów, można zastosować tablicę dynamiczną zbudowaną z użyciem klasy ArrayList Typ tablicowy Typ elementu tablicy Zmienna tablicowa
Rozmiar tablicy dynamicznej Bieżący rozmiar tablicy dynamicznej (liczbę elementów) można pobrać za pomocą funkcji.size()
Dodanie elementu do tablicy dynamicznej Dodanie elementu odbywa się za pomocą metody.add zmiennej tablicowej
Pobranie lub modyfikacja wartości elementu tablicy dynamicznej Pobranie wartości elementu poprzez indeks Zmiana wartości elementu wskazanego
Usunięcie elementu tablicy dynamicznej Wybrany element można usunąć wskazując jego indeks lub wartość Wszystkie elementy można usunąć stosując funkcję
Przejście iteracyjne po wszystkich elementach tablicy Zmienna przechowuje wartość kolejnego elementu z tablicy TS Tablica dynamiczna elementów typu String
Typ danych String Jest złożonym typem danych tablica elementów typu char Różnice pomiędzy typem String a Char[] Funkcja Char[] String Liczba elementów Operacja konkatenacji + Wybrany element o indeksie k.length Zawsze taka sama Nie.size() zmienna Tak [ k ].charat( k )
Operacje typu danych String Pobranie wskazanego elementu charat( n ) Porównanie wartości metoda.compareto metoda.equals Wycinanie Metoda substring Wyszukiwanie i zamiana metody startswith, endswith metoda indexof metoda replace Inne metoda trim