在Java中“实例化”一个列表? [重复]

问题

这个问题在这里已有答案:

  • 如何在Java中初始化List <String>对象? 11个答案

尝试使用以下代码:

List<Integer> list = new List<Integer>();

我收到以下错误消息:

java.util.List是抽象的;无法实例化

这是什么意思,为什么我不能像aArrayList一样初始化aList


#1 热门回答(151 赞)

在Java中,List是一个接口。也就是说,它无法直接实例化。

相反,你可以使用ArrayList,它是该接口的一个实现,它使用数组作为其后备存储(因此名称)。

ArrayListisa种类List,你可以轻松地将其翻译:

List<T> mylist = new ArrayList<T>();

这与.NET形成对比,因为版本2.0,List<T>IList<T>接口的默认实现。


#2 热门回答(27 赞)

List是一个接口,而不是具体的类。
接口只是一个类可以实现的一组函数;实例化接口没有任何意义。

ArrayList是碰巧实现此接口及其中所有方法的具体类。


#3 热门回答(21 赞)

UseList<Integer> list = new ArrayList<Integer>();