Liste
est l'interface, pas une classe donc elle ne peut pas être instanciée. ArrayList
est probablement ce que vous recherchez:
ArrayList liste = new ArrayList();
Une interface en Java définit essentiellement un plan pour la classe - une classe implémentant une interface doit fournir des implémentations des méthodes que la liste définit. Mais l'implémentation réelle dépend totalement de la classe implémentant, ArrayList
dans ce cas.
Le JDK fournit également LinkedList
- une implémentation alternative qui respecte également l'interface de liste. Il fonctionne très différemment de ArrayList
en dessous et en tant que tel, il a tendance à être plus efficace pour ajouter / supprimer des éléments à mi-chemin de la liste, mais pour la grande majorité des cas d'utilisation, il est moins efficace. Et bien sûr, si vous voulez définir votre propre implémentation, c'est parfaitement possible!
En bref, vous ne pouvez pas créer une liste car c'est une interface ne contenant aucun code concret - c'est le travail des classes qui implémentent cette liste, dont ArrayList
est de loin la plus utilisée (et pour de bonnes raisons!)
Il convient également de noter qu'en C# une Liste
est une classe, pas une interface - c'est IList
. Le même principe s'applique cependant, juste avec des noms différents.