ArrayList-Objekt gespeichert, in der Liste variable
Ich bin neu java zu lernen.Ich versuche zu verstehen, die verschiedenen Datenstrukturen im util-Paket.
/*create an ArrayList object*/
List<String> arrayList = new ArrayList<String>();
In der Unabhängigkeitserklärung der ArrayList-Klasse, die ich gesehen habe
public class ArrayList
extends AbstractList
implements List, RandomAccess, Cloneable, Serializable
Meine Frage ist wenn ich ein Objekt vom Typ List<> speichern Sie das zurückgegebene Objekt durch den Konstruktor von ArrayList<>
wird es funktionieren.Sie können davon ausgehen, dass ich nur die Methoden, die in der Liste angegebenen Schnittstelle,wie add() oder size().
Ich habe versucht, diese auf meinem Rechner und es funktioniert nicht.Ich fand diese in der java-tutorial unten
Den kompletten Beispiel-code, den ich versucht habe, ist als unten.
package arraylist;
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args)
{
/*create an ArrayList object*/
List<String> arrayList = new ArrayList<String>();
/*
Add elements to Arraylist using
boolean add(Object o) method. It returns true as a general behavior
of Collection.add method. The specified object is appended at the end
of the ArrayList.
*/
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");
/*
Use get method of Java ArrayList class to display elements of ArrayList.
Object get(int index) returns and element at the specified index in
the ArrayList
*/
System.out.println("Getting elements of ArrayList");
System.out.println(arrayList.get(0));
System.out.println(arrayList.get(1));
System.out.println(arrayList.get(2));
}
}
Ich vergaß zu importieren Liste.das ist, warum es nicht funktioniert.Aber meine nächste Frage ist, verwenden wir eine variable vom Typ Liste speichern: ein Objekt vom Typ ArrayList.
Vergleich der Methoden von List und ArrayList ArrayList hat die Methode trimToSize() ist, dass es nicht in der Liste.
In dem genannten Fall kann ich zum aufrufen dieser Methode?
Wenn ja,was das bedeutet in der Regel, dass ein base class pointer kann verwendet werden, zu speichern ein Objekt abgeleitete Klasse wie die Methode, die Liste der abgeleiteten Klasse wird immer ein super-Satz von Basis-Klassen Methoden?
Ist meine obige Schlussfolgerung richtig? Es meinen sound dumme Frage, aber ich bin sehr neu in java.
Sie müssen eigentliche code in Ihre Frage, ob wir überhaupt eine chance haben, Ihnen zu helfen. Was war der code, den Sie geschrieben hat? Was war der Fehler, den Sie gesehen hat? "es funktioniert nicht" ist nicht aussagekräftig genug.
Sie haben auch zu importieren
java.util.List
.InformationsquelleAutor liv2hak | 2013-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit
ArrayList
implementiert dieList
Schnittstelle, die Sie sollten in der Lage sein, um das Objekt deklariert alsList
initialisiert wird, um eineArrayList
. Das ist ziemlich gängige Praxis. Es ermöglicht Ihnen das Umschalten der Implementierung der Liste ohne änderungen im code vornehmen.Stellen Sie sicher, dass Ihre Import der Liste Schnittstelle:
Beim Verweis auf die
List
Sie werden nicht in der Lage zu verwenden, dietrimToSize
Funktion, da es nicht auf der Schnittstelle fürList
trimToSize
Es ermöglicht Ihnen das Umschalten der Implementierung der Liste ohne änderungen im code vornehmen.? Können Sie bitte erklären, was diese Aussage bedeutet, dass in etwas mehr detail?
Es bedeutet, dass wenn Sie nur die Methoden verwenden, die auf die
List
- Schnittstelle. Sie können ändern Sie dann die Initialisierung der Liste eine andere Klasse, die das list-interface wieLinkedList
.List<String> arrayList = new LinkedList<String>();
InformationsquelleAutor Kevin Bowersox
Beachten Sie in diesem Beispiel,
In diesem Fall Eine Klasse zugewiesen werden kann, um eine variable vom Typ einer der implementierten Schnittstellen.
Wenn Sie dies tun, casting, wenn Sie verwenden die Instanz von c, nur die Methoden in der Klasse C zugreifbar sein wird.
Ähnlich
ArrayList
ist Ihre ClassA und IhreList
ist die Klasse B in Beispiel.In der unten mit
arraylist
Instanz können Sie Methoden aufrufen, verfügbar in der Liste interface,Und Wenn Sie verwenden Sie die oben genannten Aufgabe, die Sie nicht anrufen können ArrayList mit Methoden wie
trimToSize()
etc. Wenn Sie verwenden möchten ArrayList-Methoden nur verwenden Sie, wie unten beschrieben.Meisten der Entwickler, die 90% der Zeit, verwenden Sie die Methoden von List und das ist der Grund, alle Beispiel die es gibt, ist nach der früheren Methode.
InformationsquelleAutor Jayamohan
List<String>
arrayList bedeutet 'diese variable kann nur store implementiert, derList<String>
interface'ArrayList<String>
implementiertList<String>
so kann es dort zu Leben.InformationsquelleAutor Patashu
Bearbeiten der Anfang der Datei wie folgt Aussehen:
package arraylist;
import java.util.ArrayList;
import java.util.Liste;
....
Wenn Sie noch nicht importierte Liste, Sie können es nicht verwenden, da der Typ für eine variable. Das ist das problem, das Sie erleben.
InformationsquelleAutor Recurse