II.4.4 Exceptions - 1 -

Ähnliche Dokumente
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

II.4.5 Generische Datentypen - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Grundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

1 Fehler-Objekte: Werfen, Fangen, Behandeln

Vorlesung 10. Sitzung Grundlegende Programmiertechniken

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Javakurs zu Informatik I. Henning Heitkötter

Programmierkurs Java

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 854

Objektorientierte Programmierung

Programmieren 2 16 Java Collections und Generizität

Exceptions. Prof. Dr. Margarita Esponda SS M. Esponda-Argüero

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

15 Fehlerobjekte: Werfen, Fangen, Behandeln

15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java)

Programmiermethodik 3. Klausur Lösung

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

1 Polymorphie (Vielgestaltigkeit)

Einstieg in die Informatik mit Java

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Objektorientierte Programmierung

Java Einführung Exception Handling. Kapitel 17

Programmieren in Java

Java Einführung Collections

Programmierkurs Java

Programmieren I. Kapitel 13. Listen

Gebundene Typparameter

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Exceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1

4. Vererbung Die Klasse Object. Die Klasse Object

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Programmieren in Java

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Java I Vorlesung Collections

Java : Fehlerbehandlung.

Ausnahmebehandlung in Java

12 Abstrakte Klassen, finale Klassen und Interfaces

Algorithmen und Datenstrukturen

Abstrakte Datentypen und Java

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Allgemeine Informatik II

Programmiermethodik 1. Klausur

int x = 3; int y = 11; public A () { this.x = z; y *= z;

Fragenkatalog ESOP WS 16/17

Grundkonzepte java.util.list

JAVA KURS COLLECTION

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Datenbankanwendungsprogrammierung Crashkurs Java

3 Objektorientierte Konzepte in Java

Java - Fehler im Code. Leibniz Universität IT Services Anja Aue

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Einführung in die Programmierung

Java Fehlerbehandlung

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens

Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte)

Programmieren in Java

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Grundlagen der Programmierung. Kapitel 9: Ausnahmen. Überblick. Fehlerbehandlung in Software-Systemen. Ziel der Vorlesung

Exceptions und Vererbung

Exceptions - Klausuraufgaben

Einfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).

Einstieg in die Informatik mit Java

Enumerations und innere Klassen

Java-Schulung Grundlagen

Programmiermethodik 1. Klausur Lösung

Einführung in die Programmierung

Transkript:

n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 -

Ausnahmen (Exceptions) Treten auf, wenn zur Laufzeit semantische Restriktionen nicht erfüllt werden, z.b. n Arithmetische Ausnahmen: z.b. Division durch 0, Wurzel aus negativer Zahl, Overflow n Unzulässiger Zugriff auf Datenstrukturen: z.b. Zugriff auf Array-Element mit negativem Index oder Index größer als length()-1. z.b. Zugriff auf Eigenschaften eines Objekts über einen Verweis, der null ist n Infrastrukturelle Ausnahmen: z.b. Lesen aus einer Datei, die nicht existiert z.b. Fehlschlag bei expliziter Datentypkonvertierung von Ober- zu Unterklasse II.4.4 Exceptions - 2 -

Exception Handling n Wenn in einem Programmblock Ausnahmen auftreten, wird ein Exception Handler aufgerufen try {... Normalblock... catch (AusnahmeArt1 Parameter1) {.. Exception Handler1.. catch (AusnahmeArt2 Parameter2) {.. Exception Handler2..... finally {.. Abschließende Anweisungen.. n Bei Auftreten einer Ausnahme im Normalblock wird zu dem entsprechenden Exception Handler gesprungen. n Der finally Block ist optional und wird auf jeden Fall am Ende ausgeführt. II.4.4 Exceptions - 3 -

Exception Objekte Eine Ausnahme ist ein Objekt der Klasse Throwable: Throwable Error Exception... RuntimeException n Ausnahmeobjekte werden implizit erzeugt, wenn eine Ausnahme auftritt. n Throwable hat den Konstruktor Throwable(String m) und die Methoden getmessage(), printstacktrace(), tostring(), etc. n Error und RuntimeException: unchecked exceptions, müssen nicht gefangen werden II.4.4 Exceptions - 4 -

Beispiele von Exception Klassen n IOException und IOError Fehler in Ein- oder Ausgabe n ArithmeticException z.b. x/0 für int x n ArrayIndexOutOfBoundsException Überschreiten des Indexbereichs eines Arrays n ClassCastException Fehlschlag bei expliziter Konversion von Ober- zu Unterklasse n NumberFormatException Versuch, String, der keine gültige Zahl enthält, in Zahl umzuwandeln n NullPointerException Versuch, auf Objektvariable über null-verweis zuzugreifen II.4.4 Exceptions - 5 -

Wo werden Exceptions behandelt public int M1() {.. M2();.... public int M2() { try {.. M3();.. catch (A a) {.. public int M3() {.. M4();.. public int M4() { try {.. // Hier wird eine Exception vom Typ A erzeugt... catch (B b) {.. Aufruf von M4 führt zu Exception A. Diese wird im Aufruf von M2 abgehandelt. II.4.4 Exceptions - 6 -

Wo werden Exceptions behandelt public int M1() {.. M2();.. // Hier wird eine Exception vom Typ B erzeugt... public int M2() { try {.. M3();.. catch (A a) {.. public int M3() {.. M4();.. public int M4() { try {.. // Hier wird eine Exception vom Typ A erzeugt... catch (B b) {.. Aufruf von M4 führt zu Exception A. Diese wird im Aufruf von M2 abgehandelt. Exception B im Aufruf von M1 wird vom Laufzeitsystem abgehandelt. II.4.4 Exceptions - 7 -

public class NegativeNumberException extends Exception { private int value; public NegativeNumberException(int value) {this.value = value; public int getvalue() {return value; public class TooBigNumberException extends Exception { private int value;... public static int fak (int x) throws NegativeNumberException{ Benutzerdefinierte Exceptions if (x < 0) throw new NegativeNumberException(x); if (x > 16) throw new TooBigNumberException(x); if (x > 1) return x * fak (x - 1); else return 1; try{system.out.println ("Fakultaet von " + x + " ist " + fak(x)); catch (NegativeNumberException nne) {System.out.println ("Fehler! " + nne.getvalue() + " < 0."); catch (Exception e) {System.out.println ("Fehler! Es trat die folgende Ausnahme auf: " + e ); II.4.4 Exceptions - 8 -

Benutzerdefinierte Exceptions public class NegativeNumberException extends Exception { private int value; public NegativeNumberException(int value) {this.value = value; public int getvalue() {return value; public class TooBigNumberException extends Exception { private int value;... public static int fak (int x) throws NegativeNumberException,TooBigNumberException{ if (x < 0) throw new NegativeNumberException(x); if (x > 16) throw new TooBigNumberException(x); if (x > 1) return x * fak (x - 1); else return 1; try{system.out.println ("Fakultaet von " + x + " ist " + fak(x)); catch (NegativeNumberException nne) {System.out.println ("Fehler! " + nne.getvalue() + " < 0."); catch (Exception e) {System.out.println ("Fehler! Es trat die folgende Ausnahme auf: " + e ); II.4.4 Exceptions - 9 -

Benutzerdefinierte Exceptions public class NegativeNumberException extends Exception {... public class TooBigNumberException extends Exception {... public static void test() throws Exception { int x = Integer.parseInt(System.console().readLine()); try{system.out.println ("Fakultaet von " + x + " ist " + fak(x)); catch (NegativeNumberException nne) {System.out.println("Fehler! " + nne.getvalue() + " < 0."); finally {System.out.println ("Ende des try-catch-blocks"); System.out.println ("Ende der Methode test."); public static int fak (int x) throws NegativeNumberException,TooBigNumberException{ if (x < 0) throw new NegativeNumberException(x); if (x > 16) throw new TooBigNumberException(x); if (x > 1) return x * fak (x - 1); else return 1; try{test(); catch (Exception e) {System.out.println ("Fehler! Es trat die folgende Ausnahme auf: " + e ); II.4.4 Exceptions - 10 -

n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.5 Generische Datentypen - 11 -

Ähnliche Programmteile public class Bruchelement { Bruch wert; Bruchelement next;... public class Wortelement { Wort wert; Wortelement next;... public class Bruchliste { Bruchelement kopf; public class Wortliste { Wortelement kopf; Liste () { kopf = null; void fuegevorneein (Bruch wert) {... Liste () { kopf = null; void fuegevorneein (Wort wert) {... Bruchelement suche (Bruch wert) {... Wortelement suche (Wort wert) {... II.4.5 Generische Datentypen - 12 -

Allgemeine Liste public class Bruchelement { Bruch wert; Bruchelement next;... public class Element { Object wert; Element next;... public class Bruchliste { Bruchelement kopf; public class Liste { Element kopf; Liste () { kopf = null; void fuegevorneein (Bruch wert) {... Liste () { kopf = null; void fuegevorneein (Object wert) {... Bruchelement suche (Bruch wert) {... Element suche (Object wert) {... II.4.5 Generische Datentypen - 13 -

Verwendung der allgemeinen Liste Bruch b1 = new Bruch (1,2), b2 = new Bruch (5,4); Element e; public class Element { Object wert; Element next;... Liste l = new Liste (); l.fuegevorneein (b1); l.fuegevorneein (b2); e = l.suche (b1); l.fuegevorneein ("hallo"); public class Liste { Element kopf; Liste () { kopf = null; void fuegevorneein (Object wert) {... e = l.suche ("hallo"); Element suche (Object wert) {... Listen mit beliebigen Objekten durcheinander II.4.5 Generische Datentypen - 14 -

Generische Liste public class Element <T> { T wert; Element <T> next;... public class Element { Object wert; Element next;... public class Liste <T> { Element <T> kopf; public class Liste { Element kopf; Liste () { kopf = null; void fuegevorneein (T wert) {... Liste () { kopf = null; void fuegevorneein (Object wert) {... Element <T> suche (T wert) {... Element suche (Object wert) {... II.4.5 Generische Datentypen - 15 -

Generische Liste public class Element <T> { T wert; Element <T> next;... Bruch b1 = new Bruch (1,2), b2 = new Bruch (5,4); Element <Bruch> e; public class Liste <T> { Element <T> kopf; Liste () { kopf = null; void fuegevorneein (T wert) {... Liste <Bruch> l = new Liste <Bruch> < > (); l.fuegevorneein (b1); l.fuegevorneein (b2); e = l.suche (b1); l.fuegevorneein ("hallo"); Element <T> suche (T wert) {... e = l.suche ("hallo"); Typfehler (compiliert nicht) II.4.5 Generische Datentypen - 16 -

Generische Klasse public class Element <T> { T wert; Element <T> next;... public class Liste <T> { Element <T> kopf; Eine Klasse, viele Typen: Liste <Bruch>, Liste <Wort>, Generische Typen nur vom Compiler überprüft, nicht zur Laufzeit nicht möglich (statische Methode existiert nur einmal pro Klasse) static Liste () <T> { kopf Element = null; <T> suche (T wert, Element <T> kopf) { if (kopf == null) void fuegevorneein (T wert) {... return null; else if (wert.gleich(kopf.wert)) return kopf; else return suche (wert, kopf.next); Element <T> suche (T wert) {... II.4.5 Generische Datentypen - 17 -

Generische Klasse public class Element <T> { T wert; Element <T> next;... public class Liste <T> { Element <T> kopf; Eine Klasse, viele Typen: Liste <Bruch>, Liste <Wort>, Generische Typen nur vom Compiler überprüft, nicht zur Laufzeit erlaubt (generische Methode) static <T> Element <T> suche (T wert, Element <T> kopf) { if void (kopf fuegevorneein == null) (T wert) { return null;... else if (wert.gleich(kopf.wert)) return kopf; else return suche (wert, kopf.next); Element <T> suche (T wert) {... II.4.5 Generische Datentypen - 18 -

Generische Klasse public class Element <T> { T wert; Element <T> next;... public class Liste <T> { Element <T> kopf; Eine Klasse, viele Typen: Liste <Bruch>, Liste <Wort>, Generische Typen nur vom Compiler überprüft, nicht zur Laufzeit erlaubt (generische Methode) static <S> Element <S> suche (S wert, Element <S> kopf) { if void (kopf fuegevorneein == null) (T wert) { return null;... else if (wert.gleich(kopf.wert)) return kopf; else return suche (wert, kopf.next); Element <T> suche (T wert) {... II.4.5 Generische Datentypen - 19 -

Generische Klasse public class Element <T> { T wert; Element <T> next;... public class Liste <T> { Element <T> kopf; Eine Klasse, viele Typen: Liste <Bruch>, Liste <Wort>, Generische Typen nur vom Compiler überprüft, nicht zur Laufzeit nicht möglich Methode gleich nur in Klassen, die Interface Vergleichbar implementieren static <S> Element <S> suche (S wert, Element <S> kopf) { if void (kopf fuegevorneein == null) (T wert) { return null;... else if (wert.gleich(kopf.wert)) return kopf; else return suche (wert, kopf.next); Element <T> suche (T wert) {... II.4.5 Generische Datentypen - 20 -

Typebounds public class Element <T extends Vergleichbar> { T wert; Element <T> next;... public class Liste <T extends Vergleichbar> { Element <T> kopf; static <S> Element <S> suche (S wert, Element <S> kopf) { if void (kopf fuegevorneein == null) (T wert) { return null;... else if (wert.gleich(kopf.wert)) return kopf; else return suche (wert, kopf.next); Element <T> suche (T wert) {... II.4.5 Generische Datentypen - 21 -

Typebounds public class Element <T extends Vergleichbar> { T wert; Element <T> next;... public class Liste <T extends Vergleichbar> { Element <T> kopf; static <S extends Vergleichbar> Element <S> suche ( ) { if void (kopf fuegevorneein == null) (T wert) { return null;... else if (wert.gleich(kopf.wert)) return kopf; else return suche (wert, kopf.next); Element <T> suche (T wert) {... II.4.5 Generische Datentypen - 22 -

Ober- und Unterklassen class A implements Vergleichbar {... class B extends A {... class C extends A {... B ist Unterklasse von A C ist Unterklasse von A A [] aarray = new A [5]; B [] barray = new B [17]; aarray = barray; aarray[0] = new C (); Liste <A> alist = new Liste < > (); Liste <B> blist = new Liste < > (); alist = blist; alist.fuegevorneein(new C ()); B[] ist Unterklasse von A[] C[] ist Unterklasse von A[] compiliert, aber Typfehler zur Laufzeit Liste <B> ist keine Unterklasse von Liste <A> Liste <C> ist keine Unterklasse von Liste <A> II.4.5 Generische Datentypen - 23 -

n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.6 Collections - 24 -

Collection Framework Typische Datenstrukturen im Paket java.util vordefiniert Liste <T> n Liste () n String tostring () n void fuegevorneein (T wert) LinkedList <T> n LinkedList () n String tostring () n void addfirst (T wert) Iterable <T> Collection <T> Für Unterklassen von Iterable existiert iterator, der angibt, wie Elemente zu durchlaufen sind Set <T> List <T> LinkedList <T> ArrayList <T> II.4.6 Collections - 25 -

Collection Framework interface Iterable <T> { Iterator <T> iterator(); interface Iterator <T> { boolean hasnext(); T next(); void remove(); Iterable <T> Collection <T> Für Unterklassen von Iterable existiert iterator, der angibt, wie Elemente zu durchlaufen sind Set <T> List <T> LinkedList <T> ArrayList <T> II.4.6 Collections - 26 -

Collection Framework interface Iterable <T> { eins zwei drei Iterator <T> iterator(); interface Iterator <T> { boolean hasnext(); T next(); void remove(); LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); while (it.hasnext()) { String s = it.next(); System.out.println(s); II.4.6 Collections - 27 -

Collection Framework eins zwei drei interface Iterator <T> { boolean hasnext(); T next(); void remove(); LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); while (it.hasnext()) { String s = it.next(); System.out.println(s); II.4.6 Collections - 28 -

Collection Framework eins zwei drei interface Iterator <T> { boolean hasnext(); T next(); void remove(); LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); while (it.hasnext()) { String s = it.next(); System.out.println(s); setzt Iterator weiter und liefert "überlaufenes" Element als Ergebnis II.4.6 Collections - 29 -

Collection Framework eins zwei drei eins zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); while (it.hasnext()) { String s = it.next(); System.out.println(s); setzt Iterator weiter und liefert "überlaufenes" Element als Ergebnis II.4.6 Collections - 30 -

Collection Framework eins zwei drei eins zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); while (it.hasnext()) { String s = it.next(); System.out.println(s); setzt Iterator weiter und liefert "überlaufenes" Element als Ergebnis II.4.6 Collections - 31 -

Collection Framework eins zwei drei eins zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); while (it.hasnext()) { for (String s : sl) { String s = it.next(); System.out.println(s); System.out.println(s); II.4.6 Collections - 32 -

Collection Framework eins zwei drei eins zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); it.next(); it.remove(); for (String s : sl) System.out.println(s); II.4.6 Collections - 33 -

Collection Framework eins zwei drei eins zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); it.next(); it.remove(); for (String s : sl) System.out.println(s); II.4.6 Collections - 34 -

Collection Framework eins zwei drei eins zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); it.next(); löscht zuletzt "überlaufenes" Element it.remove(); for (String s : sl) System.out.println(s); II.4.6 Collections - 35 -

Collection Framework zwei drei eins zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); it.next(); löscht zuletzt "überlaufenes" Element it.remove(); for (String s : sl) System.out.println(s); II.4.6 Collections - 36 -

Collection Framework zwei drei zwei drei LinkedList <String> sl = new LinkedList < > (); sl.addfirst("drei"); sl.addfirst("zwei"); sl.addfirst("eins"); Iterator <String> it = sl.iterator(); it.next(); löscht zuletzt "überlaufenes" Element it.remove(); for (String s : sl) System.out.println(s);); II.4.6 Collections - 37 -

Collection Framework LinkedList <Integer> il = new LinkedList < > (); il.addfirst(3); il.addfirst(2); il.addfirst(1); Iterator <Integer> it = il.iterator(); Autoboxing (konvertiert int in Integer) while (it.hasnext()) { Integer i = it.next(); System.out.println(i); for (Integer i : il) System.out.println(i); for (int i : il) { System.out.println(i); il.addfirst(0); II.4.6 Collections - 38 -

Collection Framework LinkedList <Integer> il = new LinkedList < > (); il.addfirst(3); il.addfirst(2); il.addfirst(1); Iterator <Integer> it = il.iterator(); Autoboxing (konvertiert int in Integer) while (it.hasnext()) { Integer i = it.next(); System.out.println(i); for (Integer i : il) System.out.println(i); for (int i : il) { System.out.println(i); il.addfirst(0); II.4.6 Collections - 39 -

Collection Framework LinkedList <Integer> il = new LinkedList < > (); il.addfirst(3); il.addfirst(2); il.addfirst(1); Iterator <Integer> it = il.iterator(); while (it.hasnext()) { Integer int i = it.next(); System.out.println(i); Autoboxing (konvertiert int in Integer) Unboxing (konvertiert Integer in int) for (Integer i : il) System.out.println(i); for (int i : il) { System.out.println(i); il.addfirst(0); II.4.6 Collections - 40 -

Collection Framework LinkedList <Integer> il = new LinkedList < > (); il.addfirst(3); il.addfirst(2); il.addfirst(1); Iterator <Integer> it = il.iterator(); while (it.hasnext()) { Integer int i = it.next(); System.out.println(i); Autoboxing (konvertiert int in Integer) Unboxing (konvertiert Integer in int) for (Integer i : il) System.out.println(i); for (int i : il) { System.out.println(i); il.addfirst(0); II.4.6 Collections - 41 -

Collection Framework LinkedList <Integer> il = new LinkedList < > (); il.addfirst(3); il.addfirst(2); il.addfirst(1); Iterator <Integer> it = il.iterator(); while (it.hasnext()) { Integer int i = it.next(); System.out.println(i); Autoboxing (konvertiert int in Integer) Unboxing (konvertiert Integer in int) for (Integer i : il) System.out.println(i); for (int i : il) { System.out.println(i); il.addfirst(0); II.4.6 Collections - 42 -

Collection Framework LinkedList <Integer> il = new LinkedList < > (); il.addfirst(3); il.addfirst(2); il.addfirst(1); Iterator <Integer> it = il.iterator(); while (it.hasnext()) { Integer int i = it.next(); System.out.println(i); Autoboxing (konvertiert int in Integer) Unboxing (konvertiert Integer in int) compiliert, aber Fehler zur Laufzeit for (Integer i : il) System.out.println(i); for (int i : il) { System.out.println(i); il.addfirst(0); II.4.6 Collections - 43 -