ArrayList verhält sich zu List etwa wie VW Golf V zu Automobil.
Von einem Automobil ist bekannt, dass es 4 Räder hat, einen Motor, wenigstens nen Platz für nen Fahrer, etc. Aber niemand kann ein Automobil kaufen, weil es nur eine Generalisierung ist. Eine konkrete Implementierung wäre ein spezifisches Modells eines Herstellers. Das hat diegleichen Eigenschaften / Möglichkeiten wie jedes Automobil, ist aber real existent.
Übertragen auf obige Analogie sagst du also, dass das Automobil meinAuto ein VW Golf V ist.
List ist das Interface, das alle Collections implementieren. ArrayList ist eine Collection, die List implementiert. List enthält die Grundbefehle wie set(), get() etc. ArrayList fügt diesen Grundbefehlen ein paar speziellere dazu.
ArrayList verhält sich zu List etwa wie VW Golf V zu Automobil.
Von einem Automobil ist bekannt, dass es 4 Räder hat, einen Motor, wenigstens nen Platz für nen Fahrer, etc. Aber niemand kann ein Automobil kaufen, weil es nur eine Generalisierung ist. Eine konkrete Implementierung wäre ein spezifisches Modells eines Herstellers. Das hat diegleichen Eigenschaften / Möglichkeiten wie jedes Automobil, ist aber real existent.
Übertragen auf obige Analogie sagst du also, dass das Automobil meinAuto ein VW Golf V ist.
import java.util.*;
import java.io.*;
public class Telefonliste {
public static BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
public static void main (String[] args) {
String eintrag;
List liste = new ArrayList();
System.out.println("Bitte geben Sie einen Namen und die Telefonnummer ein. Bsp.: 'Frank 0123456'");
eintrag = leseEintrag();
zeigeEintrag(eintrag);
speichereEintrag(eintrag);
}
public static String leseEintrag() {
while (true) {
try {
return br.readLine();
}
catch (Exception e) {
System.err.println("Eingabefehler");
}
}
}
public static String zeigeEintrag(String eintrag) {
System.out.println(eintrag);
return eintrag;
}
public static String speichereEintrag (String eintrag, List liste) {
liste.add(eintrag);
return eintrag;
}
public void löscheEintrag (String eintrag, List liste) {
liste.remove(eintrag);
}
}
Der Compiler meldet einen Fehler bei der Methode speichereEintrag()
Das Eingeben und das Ausgeben des eingebenen Strings über die Konsole funktioniert, aber leider funktioniert das hinzufügen an die Liste mit Hilfe der Methode speichereEintrag() nicht.
Eine Variable hat in Java genau einen Typ. Deine Variable liste hat den Typ List. List ist kein primitiver Typ (wie int, long, char etc.), sondern ein Referenztyp. Der Wert der Variable ist also entweder null oder eine Referenz auf ein Objekt.
Der Witz ist jetzt, dass eine Variable vom Typ List alle Objekte referenzieren kann, die mindestens so speziell wie List sind. In Deinem Fall also ArrayList oder LinkedList. Wenn Du Dich für die Klasse des referenzierten Objekts interessierst, kannst Du die Operation getClass() aufrufen.
Code:
List<String> liste = new ArrayList<String>();
System.out.println(liste.getClass().getName());