168 votes

Quelle est la différence entre List et ArrayList ?

J'ai récemment utilisé ArrayList dans mon projet Android au bureau et je suis un peu confus entre List et ArrayList, quelle est la différence entre les deux et que dois-je utiliser ?

J'ai également vu quelques mises en œuvre de ce système.

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

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

Quelle est la différence entre ces deux instances ?

176voto

ATrubka Points 1069

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

Quand vous définissez votre liste comme :

List myList = new ArrayList();

vous pouvez uniquement appeler des méthodes et référencer des membres qui sont définis dans l'interface List. Si vous la définissez comme :

ArrayList myList = new ArrayList();

vous pourrez invoquer des méthodes spécifiques à ArrayList et utiliser des membres spécifiques à ArrayList en plus de ceux dont les définitions sont héritées de List.

Néanmoins, lorsque vous appelez une méthode de l'interface List dans le premier exemple, qui a été implémentée dans ArrayList, la méthode d'ArrayList sera appelée (car l'interface List n'implémente aucune méthode).

C'est ce qu'on appelle le polymorphisme. Vous pouvez vous documenter à ce sujet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X