Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6 7 8 9 resultat 79 87 94 82 67 98 87 81 74 91 klassen Vector 1 2 Deklaration MŒnga všrden av samma typ int[] frekvens = new int[10]; É kan vara primitiva typer eller objekt et sjšlv Šr ett objekt Namnet pœ fšltet blir dœ en referens variabel, och fšltet instansieras separat Typen anger inte storleken Typen Šr int[] Instansieras till 10 heltal Indexeras 0..9 Se Basic_Array.java (s.210) 3 4 Exempel Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor; Kan anvšndas šverallt dšr ett heltal fœr fšrekomma flaggor = new boolean[20]; Tilldelning, utskrift, uttrycké. char[] koder = new char[1750]; 5 6 1
Indexkontroll VŠl skapat Šr fšltet fixt Index mœste referera till existerande element index i intervallet 0ÉN-1 frekvens[(tal-1)/10] = frekvens[(tal-1)/10]+1; Index kontrolleras under kšrning off-by-one vanligt fel Varje fšlt objekt har en konstant length frekvens.length Antalet element, inte hšgsta index Se Reverse_Numbers.java (212) ets storlek 7 8 Hela fšltet kan initialiseras vid deklarationen Initialisering Observera : Ð new anvšnds inte Ð Ingen explicit storlek Initialisera med listor int[] enheter = 147, 323, 89, 933, 540, 269, 97, 114, 298, 476}; char[] kursniva = 'A', 'B', 'C', 'D'}; LŠngden bestšms av antalet element Endast vid deklarationen Se Primes.java och Sales_Analysis.java 9 10 Objekt som element Elementen i ett fšlt kan vara objektreferenser String[] grupp = new String[5]; 5 referenser till objekt av typen String Inga objekt har skapats (referensen Šr null) Varje objekt skapas separat grupp [0] = new String(ÓEmilieÓ); Eller (fšr String ) String[] grupp = ÓEmilieÓ, ÓJohannaÓ, ÓJakobÓ, ÓEllenÓ, ÓFridaÓ }; Se Roll_Call.java (223) class Membership() private Member[] member _list; private int num_member s; som attribut 11 12 2
class Member () private String name; private int member ship_number; Member Public Member (String member_name, int id_number) name = member_name; member ship_number = id_number; }//konstruktorn }//class Member Class Membership() private Member[] member _list; private int num_member s; Public Membership() num_members = 4; member _list = new Member[4]; member _list[4] = new Member( Johnny Storm,70469);... } Membership 13 14 som parametrar Referensen šverfšrs och den formella och aktuella parametern blir alias ndringar pœverkar bœda Elementen kan skickas och fšljer elementtypens regler Se Array_Test.java (225) import java.io.*; public class Histogram Histogram private DataSamling data; public Histogram(DataSamling datasamling) data = datasamling; }//Histogram - konstruktor public void ritahistogram() }//metod ritahistogram 15 16 import java.io.*; DataSamling public class DataSamling private int maximum; // Gränser... private int minimum; // private int[] frekvens; private int antalkategorier; private int kategoribredd; public DataSamling(int min, int max, int antalkat) maximum = max; minimum = min; antalkategorier = antalkat; frekvens = new int[antalkategorier]; kategoribredd = (maximum-minimum +1)/antalKategorier; if (kategoribredd*antalkategorier < (maximum-minimum+1)) kategoribredd = kategoribredd +1; }// DataSamling - konstruktor 17 Servicemetoder public void samlaintalen() public int antalkategorier() public int kategoribredd() public int antali(int index) public int minvarde() 18 3
import java.io.*; /* pp 6.25 */ samlaintalen public class Pp625 public static void main(string[] args) throws IOException DataSamling data = new DataSamling(1,100,20); data.samlaintalen(); Histogram histogram = new Histogram(data); histogram.ritahistogram(); }// main }// Pp625 19 20 ritahistogram Flerdimensionella fšlt En-dimensionella fšlt = listor av všrden TvŒ-dimensionella fšlt - tabeller med rader & kolumner TvŒ index av fšlt i Java, medfšr att raderna kan ha olika lšngd 21 22 Flerdimensionella fšlt Lista av listor Kan initialiseras med listor Varje lista har en egen lšngdkonstant int[][] tabell = new int[4][5]; tabell.length har všrdet 4 medan alla dellistor tabell[i].length har všrdet 5 (alla listor lika lœnga) Se Multi_Array_Test.java (229) Klassen Vector Ett objekt av klassen Vector liknar ett fšlt Men Ð Lagrar bara referenser till o bjekt av typen Object Ð Inte samma syntax fšr indexering Klassen tillhšr java.util 23 24 4
Servicemetoder addelement (Object element) removeelement (Object element) contains (Object element) elementat (int index) elementat (int index) firstelement () lastelement () size () println šverlagrad till Vector -klassen Se Beatles.java (233) 25 Listtypen dynamisk Implementeras med fšlt Klassen Vector Om mer utrymme behšvs, skapas ett nytt objekt och elementen kopieras šver 26 5