Maison > Java > JavaBase > La différence entre liste et arraylist en Java

La différence entre liste et arraylist en Java

王林
Libérer: 2019-11-18 13:17:23
original
2248 Les gens l'ont consulté

La différence entre liste et arraylist en Java

Différence :

List est une interface et ArrayList est une classe d'implémentation de l'interface List. La classe ArrayList hérite et implémente l'interface List.

Par conséquent, l'interface List ne peut pas être construite, c'est-à-dire que nous ne pouvons pas créer d'objets d'instance, mais nous pouvons créer une référence d'objet pointant vers nous-mêmes pour l'interface List comme suit, et l'objet d'instance de ArrayList La classe d'implémentation est Cela agit comme une référence d'objet à l'interface List.

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();
    }
}
Copier après la connexion

La différence entre liste et arraylist en Java

List list;//正确,list = null;
List list = new List();//是错误的用法
Copier après la connexion

List list = new ArrayList();

Cette phrase crée un objet de la classe d'implémentation ArrayList et le trace jusqu'à l'interface List. Pour le moment, il s'agit d'un objet List. Il possède certaines propriétés et méthodes que la classe ArrayList possède mais n'a pas dans l'interface List. Il ne peut plus être utilisé. Cependant,

ArrayList list=newArrayList();
Copier après la connexion

crée un objet et. conserve toutes les propriétés de ArrayList et des méthodes.

Test.java
public class Test {

    public static void main(String[] args) throws ClassNotFoundException {
        Animals a2 = new Dog();
        a2.shout();
        a2.guard();
    }
}
Copier après la connexion

La différence entre liste et arraylist en Java

La classe parent ne peut plus appeler les méthodes qui apparaissent dans la classe parent mais pas dans la classe enfant. Sinon, des erreurs de compilation se produiront.

Si cela ressemble à ceci :

List a=new ArrayList();
Copier après la connexion

Alors a a toutes les propriétés et méthodes de List, et n'aura pas les propriétés et méthodes uniques de sa classe d'implémentation ArrayList.

Si List et ArrayList ont les mêmes attributs (comme int i) et la même méthode (comme void f()),

alors a.i appelle i, a.f dans List() appelle f() dans ArrayList ;

La clé du problème :

Pourquoi devrions-nous utiliser List list = new ArrayList()  au lieu de ArrayList alist = new ArrayList() ?

Le problème est que l'interface List a plusieurs classes d'implémentation. Vous utilisez maintenant ArrayList. Peut-être qu'un jour vous devrez passer à d'autres classes d'implémentation, telles que :

LinkedList ou Vector, etc. . Pour le moment, il vous suffit de modifier cette ligne :  List list = new LinkedList(); Les autres codes où la liste est utilisée n'ont pas du tout besoin d'être modifiés.

Supposons que vous commenciez à utiliser ArrayList alist = new ArrayList(), mais que vous deviez maintenant apporter quelques modifications, surtout si vous utilisez les méthodes et propriétés uniques à la classe d'implémentation ArrayList.

Tutoriel recommandé : Tutoriel Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal