import java.util.ArrayList; //IKKE filen vi bruker i datastrukturtegningen. Se helle Arrays.java fra uke 2. //Dette er filen vi jobbet med i timen, pluss litt ekstra. class ArraysogArrayList{ int ord = 2; public static void main(String[] args){ Eple[] epleArray = new Eple[4]; epleArray[0] = new Eple("Blaa"); epleArray[1] = new Eple("Groenn"); epleArray[2] = new Eple("Roed"); epleArray[3] = new Eple("Groenn"); //Vi kan f.eks. hente ut det foerste Eple objektet. Eple eple1 = epleArray[0]; System.out.println(eple1.hentFarge()); //Skriver ut fargen. //Vi lagrer lengden til array'et int size = epleArray.length; //Printer ut lengden til array'et System.out.println(size); //epleArray[4] = 50; //Feilmelding!! Array'et vaart er ikke stort nok! //Printer ut alle fargene til elementene i array'et vaart System.out.println(); //Linjeskift System.out.println("Alle elementer i epleArray[]:"); for(int i = size; i >= 0; i--){ System.out.println(epleArray[i].hentFarge()); } //Vi kan ikke faktisk redusere eller oeke størrelsen vaar paa et array epleArray[3] = null; size = size - 1; //Dette setter siste elementet til null, og senker verdien til size med 1, men det eksisterer fortsatt en verdi paa index 3. System.out.println("Fortsatt paa index 3: " + epleArray[3]); //Vi kan lage et nytt array, men det er jo litt slitsomt aa gjoere hele tiden epleArray = new Eple[6]; //De faa neste linjene handler mer om referanser enn arrays: //Legg merke til at denne evaluerer til true. Det er fordi begge String farge variablene i disse Eple objektene, peker paa samme String. System.out.println(epleArray[3].hentFarge() == epleArray[1].hentFarge()); // ArrayList ------------------------------ // https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html //Nytt array som inneholder Eple. Vi trenger ikke gi den noen opprinnelig stoerrelse ArrayList epleArrayList = new ArrayList(); //Legger til to elementer. Stoerrelsen til ArrayList oeker dynamisk. epleArrayList.add(new Eple("Blaa")); epleArrayList.add(new Eple("Gul")); //Vi fjerner det foerste elementet (med fargen "Blaa"). Dermed blir det nye foerste elementet eplet med fargen "Gul"!! epleArrayList.remove(0); //Henter ut element og skriver fargen Eple eple1 = epleArrayList.get(0); System.out.println(eple1.hentFarge()); System.out.println(epleArrayList.size()); //Stoerrelsen //HUSK: for aa hente ut stoerrelsen til en ArrayList, kaller vi ArrayList.size() (HUSK PARANTES!) // for vanlige Arrays er det derimot Array.length (INGEN PARANTES!) } } //Naar burde jeg bruke Array vs ArrayList?? //Kort fortalt // * Arrays naar du vet akkurat hvor stor listen din skal vaere (og den ikke skal endre seg) // * ArrayList naar du vet at listen kan endre stoerrelse // ArrayList kan gjoere alt det en Array kan, og mer // Er du usikker, bruk ArrayList. Dere skal jobbe noeyere med denne senere uansett // Men dere maa kunne Arrays!!! Saa faa inn litt programmering med det. class Eple{ private String farge; public Eple(String f){ farge = f; } public String hentFarge(){ return farge; } }