Heim > Java > JavaBase > Der Unterschied zwischen Liste und Arraylist in Java

Der Unterschied zwischen Liste und Arraylist in Java

王林
Freigeben: 2019-11-18 13:17:23
Original
2248 Leute haben es durchsucht

Der Unterschied zwischen Liste und Arraylist in Java

Unterschied:

List ist eine Schnittstelle und ArrayList ist eine Implementierungsklasse der List-Schnittstelle. Die ArrayList-Klasse erbt und implementiert die List-Schnittstelle.

Daher kann die List-Schnittstelle nicht erstellt werden, das heißt, wir können keine Instanzobjekte erstellen, aber wir können für die List-Schnittstelle wie folgt eine Objektreferenz erstellen, die auf uns selbst verweist, und das Instanzobjekt der ArrayList Die Implementierungsklasse ist Dies fungiert als Objektreferenz auf die List-Schnittstelle.

Animals.java
public  abstract class Animals {
    //动物名字
    String name;
    //动物叫声
    public  void shout(){
        System.out.println("叫声----");
    }
}

Dog.java
public class Dog extends Animals {
    //狗类独有的方法
    public void guard(){
        System.out.println("狗独有的看门本领");
    }
}

Test.java
public class Test {

    public static void main(String[] args) throws ClassNotFoundException {
        Animals a1 = new Animals();
        Animals a2 = new Dog();
    }
}
Nach dem Login kopieren

Der Unterschied zwischen Liste und Arraylist in Java

List list;//正确,list = null;
List list = new List();//是错误的用法
Nach dem Login kopieren

List list = new ArrayList();

Dieser Satz erstellt ein Objekt der ArrayList-Implementierungsklasse und verfolgt es bis zur List-Schnittstelle. Zu diesem Zeitpunkt handelt es sich um ein List-Objekt. Es verfügt über einige Eigenschaften und Methoden, über die die ArrayList-Klasse verfügt. Es kann jedoch kein Objekt mehr verwendet werden behält alle Eigenschaften der ArrayList und Methoden bei.

ArrayList list=newArrayList();
Nach dem Login kopieren

Der Unterschied zwischen Liste und Arraylist in JavaDie übergeordnete Klasse kann keine Methoden mehr aufrufen, die in der übergeordneten Klasse, aber nicht in der untergeordneten Klasse vorkommen. Andernfalls kommt es zu Kompilierungsfehlern.

Wenn es so aussieht:

Test.java
public class Test {

    public static void main(String[] args) throws ClassNotFoundException {
        Animals a2 = new Dog();
        a2.shout();
        a2.guard();
    }
}
Nach dem Login kopieren

Dann hat a alle Eigenschaften und Methoden von List und verfügt nicht über die eindeutigen Eigenschaften und Methoden seiner Implementierungsklasse ArrayList.

Wenn List und ArrayList dieselben Attribute (z. B. int i) und dieselbe Methode (z. B. void f()) haben,

dann ruft a.i i und a.f in List() auf f() in ArrayList;

Der Schlüssel zum Problem:

Warum sollten wir

anstelle von

verwenden? List list = new ArrayList() ArrayList alist = new ArrayList()Das Problem besteht darin, dass die List-Schnittstelle mehrere Implementierungsklassen hat. Jetzt verwenden Sie ArrayList. Vielleicht müssen Sie eines Tages zu anderen Implementierungsklassen wechseln, wie zum Beispiel:

LinkedList oder Vector usw . Zu diesem Zeitpunkt müssen Sie nur diese Zeile ändern:

Andere Codes, in denen die Liste verwendet wird, müssen überhaupt nicht geändert werden.

 List list = new LinkedList();Angenommen, Sie beginnen mit der Verwendung von

, müssen jetzt jedoch einige Änderungen vornehmen, insbesondere wenn Sie die Methoden und Eigenschaften verwenden, die nur für die ArrayList-Implementierungsklasse gelten.

ArrayList alist = new ArrayList()Empfohlenes Tutorial:

Java-Tutorial

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Liste und Arraylist in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage