Quelle est la différence entre List et ArrayList? [dupliquer]

cette question a déjà une réponse ici:

j'ai utilisé ArrayList récemment dans mon projet android au bureau et je suis un peu confus entre List et ArrayList, Quelle est la différence des deux et que dois-je utiliser?

J'ai aussi vu quelques implémentations de celui-ci comme.

List<SomeObject> myList = new ArrayList<SomeObject>();

ArrayList<SomeObject> myList = new ArrayList<SomeObject>();

Quelle est la différence entre ces deux cas?

133
demandé sur Mat 2013-02-16 00:52:26

1 réponses

il n'y a pas de différence entre les implémentations list dans vos deux exemples. Il y a cependant une différence dans la façon dont vous pouvez utiliser mylist variable dans votre code.

quand vous définissez votre liste comme:

List myList = new ArrayList();

vous ne pouvez appeler que les méthodes et les membres de référence qui sont définis dans L'interface de liste. Si vous le définissez comme:

ArrayList myList = new ArrayList();

vous serez en mesure d'invoquer les méthodes spécifiques ArrayList-spécifiques et l'utilisation Membres spécifiques à l'ArrayList en plus de ceux dont les définitions sont héritées de List.

Néanmoins, lorsque vous appelez une méthode D'une interface de liste dans le premier exemple, qui a été implémentée dans ArrayList, la méthode de ArrayList sera appelée (parce que L'interface de liste n'implémente aucune méthode).

ça s'appelle du polymorphisme. Vous pouvez la lire.

147
répondu ATrubka 2016-11-28 21:26:30