Tabela v Javi
Iz E-študij, proste zakladnice študentskega znanja
- Članek govori o tabelah (class Arrays) v Javi.
Vsebina |
Lastnosti
- Tabele so objekti.
- Tabele se tvorijo (kreirajo) dinamično.
- Tabele so lahko prirejene objektom tipa Object.
- Vsaka metoda na objektom tipa Object se lahko uporabi nad tabelo.
- Tabela vsebuje zaporedje spremenljivk določene vrste.
- Spremenljivke imenujemo elementi tabele.
- Če je tip elementa Type, potem je tip tabele Type[].
- Vsebina spremenljivke tipa tabela je naslov (referenca) na tabelo.
- Element tabele je lahko tudi tabela.
- Element tabele je lahko osnovnega tipa ali objekt (naslov).
- Dolžina tabele je enaka številu elementov tabele.
- Dolžina tabele je določena ob kreiranju in je nespremenljiva.
- Dolžino tabele lahko preberemo s pomočjo spremenljivke length.
- Indeksi tabele tečejo med 0 in length-1.
- Prekoračitev sproži izjemo ArrayIndexOutOfBoundsException.
- Indeks je lahko tipa int, short, byte ali char.
- Za (popolno) kopiranje tabel uporabljamo metodo Object.clone().
- Za preverjanje enakosti uporabljamo metodo Arrays.equals().
- Tabele implementirajo lastnosti (vmesnik) Clonable in Serializable.
Razred
Razred Arrays (java.util.Arrays)
Metode
- public static List asList (Object[])
- public static int binarySearch (...)
- public static boolean equals (...)
- public static void fill (...)
- public static void sort (...)
... – tabela kateregakoli osnovnega tipa (razen boolean) ali Object
Primer
import java.util.Arrays; public class Tabele { public static void main(String[] args) { char[] a = new char[20]; // polnjenje tabele s crko A Arrays.fill(a,'A'); String s = new String(a); System.out.println("s = \"" + s + "\""); Object[] objects = new Object[8]; // polnjenje dela tabele z besedo "FRI" Arrays.fill(objects,2,5,"FRI"); // izpis tabele s pomocjo pretvorbe v seznam System.out.println("objects = " + Arrays.asList(objects)); int[] x = { 77, 44, 99, 88, 22, 33, 66, 55 }; // kopiranje (kloniranje) tabele int[] y = (int[])x.clone(); System.out.print("x = "); print(x); System.out.print("y = "); print(y); // preverjanje metode equals System.out.println("Arrays.equals(x,y) = " + Arrays.equals(x,y)); System.out.println("y.equals(x) = " + y.equals(x)); y[4] = 0; System.out.print("y = "); print(y); System.out.println("Arrays.equals(x,y) = " + Arrays.equals(x,y)); System.out.print("x = "); print(x); // sortiranje tabele Arrays.sort(x); System.out.print("x = "); print(x); // Iskanje z bisekcijo int i = Arrays.binarySearch(x,44); System.out.println("Arrays.binarySearch(x,44) = " + i); i = Arrays.binarySearch(x,47); System.out.println("Arrays.binarySearch(x,47) = " + i); // Napaka! Iskanje v neurejeni tabeli System.out.print("y = "); print(y); i = Arrays.binarySearch(y,0); System.out.println("Arrays.binarySearch(y,0) = " + i); i = Arrays.binarySearch(y,44); System.out.println("Arrays.binarySearch(y,44) = " + i); i = Arrays.binarySearch(y,22); System.out.println("Arrays.binarySearch(y,22) = " + i); } private static void print(int[] a) { System.out.print("{ " + a[0]); for (int i=1; i<a.length; i++) System.out.print(", " + a[i]); System.out.println(" }"); } }