Java中List和ArrayList的区别总结如下:
1 从类的层次结构上
List 是接口,成为有序的 Collection 也就是序列。该接口可以对列表中的每一个元素的插入位置进行精确的控制,同时用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
ArrayList:List 接口的大小可变数组的实现。它实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。
以下是整个list的实现关系图:
2 使用方面的区别:
List list = new ArrayList();
这样做的原因是list就相当于是一个泛型的实现,如果想改变list的类型,只需要调用不同的实现类来构建,提供了使用上的灵活性。