Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Relevanta dokument
Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens föreläsning. Instickssortering med hjälp av en ArrayList. Omslagsklasser. Metoderna equals och compareto. Läsa filer. Scanner-repetition

Dagens föreläsning. Omslagsklasser. Metoderna equals och compareto. Läsa filer. Programs hantering av fel. Scanner-repetition.

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Föreläsning REPETITION & EXTENTA

Föreläsning 3-4 Innehåll

Del A (obligatorisk för alla)

OOP Objekt-orienterad programmering

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Del A (obligatorisk för alla)

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Saker du ska kunna Föreläsning 13 & 14

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

TENTAMEN OOP

TENTAMEN OOP

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Tentamen OOP

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Lösningsförslag övning 2.

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

OOP Objekt-orienterad programmering

Arrayer. results

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Objektorienterad Programmering (TDDC77)

Programmeringsteknik I. Föreläsning 3: Klasser och arrayer

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

OOP Objekt-orienterad programmering

Objektorienterad programmering i Java

Chapter 4: Writing Classes/ Att skriva egna klasser.

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

Enkla variabler kontra referensvariabel

Mer om klasser och objekt

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Lösningsförslag till tentamen

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

Tentamen i Programmeringsteknik I

Föreläsning 7-8 Innehåll

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

F4. programmeringsteknik och Matlab

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Del A (obligatorisk för alla)

Föreläsning 8: Exempel och problemlösning

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Repetition av OOP- och Javabegrepp

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Föreläsning 9-10 Innehåll

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Repetition av OOP- och Javabegrepp

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Den som bara har en hammare tror att alla problem är spikar

Föreläsning 3: Booleans, if, switch

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Laboration 1 - Grunderna för OOP i Java

Föreläsning 3. Stack

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Arrayer (fält)

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Skillnader mellan Python och Java

Instuderingsfrågor, del E

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Transkript:

(1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser

Arbetsexempel (1 oktober 2017 F5 2 )

Pokertärningar (1 oktober 2017 F5 3 )

(1 oktober 2017 F5 4 ) Gamla tärningsklassen med nytt namn public class PokerDice { private int value; public PokerDice() { this.roll(); public int getvalue() { return this.value; public void roll() { this.value = (int)(math.random()*6) + 1; public String tostring() { return "" + value; Observera public static void main(string[] args) { PokerDice d = new PokerDice(); for (int i= 1; i<=50; i++) { d.roll(); System.out.print(d + " "); if (i%10 == 0) { System.out.println(); > run PokerDice 2 5 4 1 1 2 6 3 1 2 1 2 6 1 4 1 2 5 1 3 6 3 4 2 5 3 6 5 4 6 5 1 4 2 1 5 1 5 4 3 6 5 3 3 1 3 1 4 4 6

(1 oktober 2017 F5 5 ) Hur gör vi en tärning till en pokertärning? Om vi kör precis samma main som ovan vill vi ha > run PokerDice E Kn 9 K 9 10 9 10 K K E E 10 9 Kn E 9 9 Kn Kn 10 10 10 Kn K 9 K Kn K Kn E E Kn D 9 K D Kn 9 D 9 E D K Kn D D E E D Lösning: Skriv om tostring-metoden!

(1 oktober 2017 F5 6 ) tostring Försök 1 public String tostring() { if (value == 1 ) return "9"; else if (value == 2) return "10";...? Nää! Glöm det!

(1 oktober 2017 F5 7 ) Bättre tostring Gör en array med strängar: String[] symbols = {"9 ", "10", "Kn", "D ", "K ", "E "; och använd value-1 som index: return symbols[value-1]; i tostring-metoden.

(1 oktober 2017 F5 8 ) Var ska symbols deklareras? Som lokal variabel i tostring-metoden: public String tostring() { String[] symbols = {"9 ", "10", "Kn", "D ", "K ", "E "; return symbols[value-1]; eller som en instansvariabel i klassen PokerDice: public class PokerDice { private int value; private String[] symbols = {"9 ", "10", "Kn", "D ", "K ", "E "; Bäst är att göra den till en klassvariabel (eller konstant): public class PokerDice { private int value; private static String[] symbols = {"9 ", "10", "Kn", "D ", "K ", "E "; DrJava

(1 oktober 2017 F5 9 ) En snyggare lösning som dock är mycket överkurs Behåll den ursprungliga definitionen av klassen Dice och skriv PokerDice som en specialisering av Dice: public class PokerDice extends Dice { private static final String[] symbols = {"9 ", "10", "Kn", "D ", "K ", "E "; public String tostring() { return symbols[value-1]; Metoden roll (liksom andra metoder) ärvs från klassen Dice och den parameterlösa konstruktorn kommer att användas.

(1 oktober 2017 F5 10 ) PokerSet - 5 pokertärningar Hur kommer man igång?

(1 oktober 2017 F5 11 ) PokerSet - 5 pokertärningar Princip: Se till att ha något som kan köras så fort som möjligt! public class PokerSet { instansvariabler private PokerDice[] thedice; konstruktor public PokerSet() {... tostring-metod public String tostring() {... main-metod public static void main(string[] a) {...

(1 oktober 2017 F5 12 ) PokerSet: Konstruktor public class PokerSet { private PokerDice[] thedice; public PokerSet() { thedice = new PokerDice[5];? Man måste även skapa elementen i arrayen!

(1 oktober 2017 F5 13 ) PokerSet: Konstruktor public class PokerSet { private PokerDice[] thedice; public PokerSet() { thedice = new PokerDice[5]; for (int i=0; i<5; i++) { thedice[i] = new PokerDice(); En sak som jag inte gillar - den magiska talet 5.

(1 oktober 2017 F5 14 ) PokerSet: Konstruktor Snyggare: public class PokerSet { public static final int NUMBER_OF_DICE = 5; private PokerDice[] thedice; public PokerSet() { thedice = new PokerDice[NUMBER_OF_DICE]; for (int i=0; i<thedice.length; i++) { thedice[i] = new PokerDice();

(1 oktober 2017 F5 15 ) PokerSet: Ännu snyggare med två konstruktor public class PokerSet { private PokerDice[] thedice; public PokerSet(int numberofdice) { thedice = new PokerDice[numberOfDice]; for (int i=0; i<thedice.length; i++) { thedice[i] = new PokerDice(); public PokerSet() { this(5); Observera att vi inte behöver (och därmed inte bör) lagra antalet tärningar. Koden kan använda thedice.length

(1 oktober 2017 F5 16 ) PokerSet: tostring-metoden public String tostring() { String result = thedice[0].tostring(); for (int i=1; i < thedice.length; i++) { result += ", " + thedice[i].tostring(); return "[" + result + "]"; Fråga: Kan man använda for - each? Svar: Nja, svårt med kommatecknet. Fråga: Behöver man de explicita anropen till tärningens tostring? Svar: Ja, det första men inte det inuti loopen.

(1 oktober 2017 F5 17 ) PokerSet: tostring-metoden Anna berättade om klassen Arrays på förra föreläsningen. Där finns en användbar klassmetod: public String tostring() { return Arrays.toString(theDice); Fråga: Hur vet Arrays.toString hur en tärning ska göras till en sträng? Svar: Använder tostring i Dice! Klassen Arrays bör (måste?) importeras. Hur och varför?

(1 oktober 2017 F5 18 ) PokerDice: Första körbara program import java.util.arrays; public class PokerSet { private PokerDice[] thedice; public PokerSet() { this(5); public static void main(string[] args) PokerSet pokerset = new PokerSet(); System.out.println(pokerSet); public String tostring() { return Arrays.toString(theDice); public PokerSet(int numberofdice) { thedice = new PokerDice[numberOfDice]; for (int i=0; i<thedice.length; i++) { thedice[i] = new PokerDice(); DrJava

(1 oktober 2017 F5 19 ) PokerDice: Metoden roll med test i main public void roll() { for (PokerDice dice : thedice) { dice.roll(); public static void main(string[] args) { PokerSet pokerset = new PokerSet(); while (true) { pokerdice.roll(); System.out.println(pokerSet); DrJava

(1 oktober 2017 F5 20 ) PokerDice: Resultat med fråga om fortsätta Så här: [9, D, Kn, 9, K ] Igen? (j/n) j [E, D, Kn, D, K ] Igen? (j/n) j [9, E, 10, 9, E ] Igen? (j/n) n >

(1 oktober 2017 F5 21 ) Klassen Scanner Klassen Scanner är mycket användbar för att läsa och tolka text (strömmar av tecken). Klassen importeras: import java.util.scanner Måste kopplas till den teckenström den ska tolka. Det görs när man skapar scanner-objektet dvs i konstruktoranropet: Scanner scan = new Scanner(System.in) som kopplar scannern till tangentbordet.

(1 oktober 2017 F5 22 ) Klassen Scanner Den enda Scanner-metod som behöver just nu är String nextline() som hämtar och returnerar nästa rad. Så här:... System.out.print("Igen? (j/n)"); String answer = scan.nextline();... DrJava

(1 oktober 2017 F5 23 ) PokerSet: main-metod med do-sats public static void main(string[] args) { PokerSet pokerset = new PokerSet(); Scanner scan = new Scanner(System.in); String answer; do { pokerset.roll(); System.out.println(pokerSet); System.out.print("Igen? (j/n)"); answer = scan.nextline(); while (!answer.equals("n")); DrJava

(1 oktober 2017 F5 24 ) Utfallet bör presenteras sorterat! Vi tittar på bubbelsortering som kanske är den enklaste att koda men också en av de sämsta. Inget problem vid små mängder. Antag att vi har en int[] a med n element som ska sorteras. Den fundamentala operationen i bubbelsort är att jämföra två intilliggande element och byta plats ( swappa ) om ordningen är fel: (Sorterar i fallande ordning) if (a[i] < a[i+1]) { int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp;

(1 oktober 2017 F5 25 ) Sortering med Bubbelsort Denna operation ska upprepas för alla möjliga värden på i (dvs från 0 till n-2): for (int i=0; i<n-1; i++) { if (a[i] < a[i+1]) { int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; Detta svep över arrayen måste sedan upprepas tills den är sorterad.. Antingen tänker man efter hur många gånger det maximalt kan behövas eller så kollar man om det blev någon swap.

(1 oktober 2017 F5 26 ) Sortering med Bubbelsort Vi använder en logisk variabel swapped för att avgöra om det blivit något byte under ett svep. boolean swapped = true; while (swapped) { swapped = false; for (int i=0; i<n-1; i++) { if (a[i] < a[i+1]) { int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; swapped = true; Det går att effektivisera algoritmen en del (t ex genom att inse att den inre loppen successivt kan kortas) men...

(1 oktober 2017 F5 27 ) PokerSet - Sortering Använd getvalue för att avgöra ordning! public void sort() { boolean swapped = true; while (swapped) { swapped = false; for (int i = 0; i < thedice.length - 1; i++) { if (thedice[i].getvalue() < thedice[i+1].getvalue() ) { PokerDice temp = thedice[i]; thedice[i] = thedice[i+1]; thedice[i+1] = temp; swapped = true;

(1 oktober 2017 F5 28 ) PokerSet - Sortering Vem ska anropa sort? main? roll? tostring? Konstruktorn?

(1 oktober 2017 F5 29 ) PokerDice: Fråga användaren vilka som ska slås om Vad behövs? En metod för att slå om enskilda tärningar. Räcker med en metod som kan slå om en specificerad tärning. public void roll(int i) { thedice[i-1].roll(); Fråga användaren (System.out.print) och läsa in ett antal tal. Scanner-uppgift!

(1 oktober 2017 F5 30 ) Mer om klassen Scanner Två Scanner-metoder: int nextint() läser och returnerar ett heltal. Fel om de tecken som står på tur inte kan tolkas som ett heltal. boolean hasnextint() returnerar true om det som står på tur kan tolkas som ett heltal, annars false.

(1 oktober 2017 F5 31 ) PokerDice: Fråga användaren vilka som ska slås om Vi kan läsa tal från den redan skapade scannern (scan) men svårt att veta hur många tal som ska läsas. Betydligt bättre: Läs in en hel rad med scan.nextline() Skapa ett nytt Scanner-objekt (säg linescanner) som kopplas till den inlästa raden (dvs till ett String-objekt). Tolka talen från raden med while-loopen: while (linescanner.hasnextint()) { int d = linescanner.nextint();...

(1 oktober 2017 F5 32 ) PokerDice do {... System.out.print("Vilka ska slås om? "); answer = scan.nextline(); Scanner linescanner = new Scanner(answer); while (linescanner.hasnextint()) { pokerset.roll(linescanner.nextint()); pokerset.sort(); System.out.println(pokerSet);... while (!answer.equals("n")); Saknas: Felhantering!

(1 oktober 2017 F5 33 ) Dialogrutor Klassen javax.swing.joptionpane har ett antal static-metoder för att kommunicera via dialogrutor. JOptionPane.showMessageDialog(null,"Ciao!");

(1 oktober 2017 F5 34 ) Dialogrutor JOptionPane.showInputDialog(null, "Hur många?"); Metoden returnerar en sträng som man, t ex, kan koppla ett Scanner-objekt till.

(1 oktober 2017 F5 35 ) Användning i PokerDice while (true) { pokerset.roll(); pokerset.sort(); String ans = JOptionPane.showInputDialog(null, pokerset + "\nvilka vill du slå om?"); if (ans==null) { break; Scanner scan = new Scanner(ans); while (scan.hasnextint()) { pokerset.roll(scan.nextint()); pokerset.sort(); JOptionPane.showMessageDialog(null, pokerset, "Resultat", JOptionPane.PLAIN_MESSAGE); Se eller hämta och testa den slutliga versionen av koden.

(1 oktober 2017 F5 36 ) Arrayers styrkor och svagheter + Effektivt minnesutnyttjande + Snabb åtkomst till element med visst index + Snabb sökning om sorterat (med binär sökning eller hashteknik) Fix storlek Inlägg besvärligt om sorterat

(1 oktober 2017 F5 37 ) Ett alternativ till arrayer: ArrayList En ArrayList är en arrayliknande struktur med följande egenskaper: Kan växa och krympa automatiskt Kan skjuta in nya element var som helst Kan ta bort element var som helst Kan använda index men en annan syntax än i arrayer Kan bara lagra objekt inte primitiva datatyper

(1 oktober 2017 F5 38 ) Exempel ArrayList import java.util.arraylist; ArrayList<String> names; names = new ArrayList<String>(); Måste importeras Typen måste anges i deklarationen och i konstruktionen names.add("olle"); names.add("lisa"); names.add("lasse"); add lägger till sist System.out.println(names.get(1)); System.out.println(names); System.out.println("Size: " + names.size()); Lisa [Olle, Lisa, Lasse] Size: 3

(1 oktober 2017 F5 39 ) Exempel ArrayList Der går att skjuta in, ändra och ta bort element. Exempel: names.add(1, "Anna"); System.out.println(names); names.set(2, "Britta"); System.out.println(names); names.remove(0); names.remove("lasse"); System.out.println(names); [Olle, Anna, Lisa, Lasse] [Olle, Anna, Britta, Lasse] [Anna, Britta]

(1 oktober 2017 F5 40 ) Exempel ArrayList En ArrayList kan användas för att lagra godtyckliga objekt (av samma typ). Exempel: ArrayList<Turtle> turtles = new ArrayList<Turtle>(); ArrayList<Dice> dice = new ArrayList<Dice>(); ArrayList<int[]> intlists = new ArrayList<int[]>();

(1 oktober 2017 F5 41 ) Omslagsklasser Hur gör man för att lagra t ex int eller double? Man använder omslagsklasserna Integer eller Double. Exempel: ArrayList<Integer> numbers = new ArrayList<Integer>(); for (int i = 0; i<=10; i++) { numbers.add(new Integer(i-5)); System.out.println(numbers); [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]

(1 oktober 2017 F5 42 ) Omslagsklasser: Hantering av objekten Integer io = numbers.get(7); System.out.println("Integer-objekt: " + io); int i = io.intvalue(); System.out.println("int-värde : " + i ); Integer-objekt: 2 int-värde : 2

(1 oktober 2017 F5 43 ) Omslagsklasser: Automatiska konverteringar Autoboxing och autounboxing numbers.clear(); for (int i = 0; i<10; i++) { numbers.add(10-i); System.out.println(numbers); int s = 0; for (int i = 0; i<numbers.size(); i++) { s = s + numbers.get(i); System.out.println("Summan: " + s); [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] Summan: 55

(1 oktober 2017 F5 44 ) Att fundera på Vad tas bort av satsen numbers.remove(3); Är det element på plats 3 eller elementet som innehåller 3? Hur gör man för att få den variant som det inte är?