当前位置: 代码迷 >> J2SE >> List list=new ArrayList()如何理解?
  详细解决方案

List list=new ArrayList()如何理解?

热度:236   发布时间:2016-04-24 02:26:34.0
List list=new ArrayList()怎么理解???
List list=new ArrayList()怎么理解???

------解决方案--------------------
其实是继承就相当于在list的一部分arraylist!
------解决方案--------------------
java.util 
接口 List<E>

public interface List<E>extends Collection<E>有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。难免有人希望通过在用户尝试插入重复元素时抛出运行时异常的方法来禁止重复的列表,但我们希望这种用法越少越好。

List 接口在 iterator、add、remove、equals 和 hashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定的约定。为方便起见,这里也包括了其他继承方法的声明。

List 接口提供了 4 种对列表元素进行定位(索引)访问方法。列表(像 Java 数组一样)是基于 0 的。注意,这些操作可能在和某些实现(例如 LinkedList 类)的索引值成比例的时间内执行。因此,如果调用者不知道实现,那么在列表元素上迭代通常优于用索引遍历列表。

List 接口提供了特殊的迭代器,称为 ListIterator,除了允许 Iterator 接口提供的正常操作外,该迭代器还允许元素插入和替换,以及双向访问。还提供了一个方法来获取从列表中指定位置开始的列表迭代器。

List 接口提供了两种搜索指定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。

List 接口提供了两种在列表的任意位置高效插入和移除多个元素的方法。

注意:尽管列表允许把自身作为元素包含在内,但建议要特别小心:在这样的列表上,equals 和 hashCode 方法不再是定义良好的。 

某些列表实现对列表可能包含的元素有限制。例如,某些实现禁止 null 元素,而某些实现则对元素的类型有限制。试图添加不合格的元素会抛出未经检查的异常,通常是 NullPointerExceptionClassCastException。试图查询不合格的元素是否存在可能会抛出异常,也可能简单地返回 false;某些实现会采用前一种行为,而某些则采用后者。概括地说,试图对不合格元素执行操作时,如果完成该操作后不会导致在列表中插入不合格的元素,则该操作可能抛出一个异常,也可能成功,这取决于实现的选择。此接口的规范中将这样的异常标记为“可选”。 
java.util
类 ArrayList<E>
所有已实现的接口: 
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess 

public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, SerializableList 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)



------解决方案--------------------
java中多态的一种表现。ArrayList有实现List接口
------解决方案--------------------
呵呵,帮忙顶下。
------解决方案--------------------
创建一个List的实例嘛 ,因为List是接口 ,所以要赋值给List 实例,那么当然要赋给它 ,实现它的具体对象了,而 ArrayList就是List的一个实现 ,所以就所以了
------解决方案--------------------
顶6楼啦,不管什么深奥的原理,其实最简单就是因为不能new List啦!

其他么,定义成接口类比较方便啦,你以后把new的ArrayList当参数传给方法的时候,人家直接定义接收一个List就可以,方便协同合作
------解决方案--------------------
多态的一种表现形式。
接口的引用指向具体实现类的对象。
------解决方案--------------------
马士兵对此有句很经典的描述:父类引用,指向子类对象。

多态的表示。
------解决方案--------------------
java中一种多态的形式,接口类型的引用指向了实现接口类型的对象。
------解决方案--------------------
就是一个装箱操作啦。

父类或接口型的变量可以理解成一个大箱子,子类或实现类可以理解成一个可以嵌套入大箱子的小箱子。
PS:只有父类/子类或接口/实现类的结合才能满足嵌套与被嵌套的关系。

装箱操作可以理解为把一个小箱子(子类或实现类实例)放入能嵌套进去的大箱子(父类或接口)里。
相反的操作叫做拆箱操作。
------解决方案--------------------
List是一个接口 ArrayList是一个类 一个类实现了一个接口

所以才可以写成 List li=new ArrayList();
 当然你这样ArrayList list=new ArrayList();也是一样的
------解决方案--------------------
首先输入 www.google.com.hk

然后搜索 java 多态

然后阅读三页搜索结果里的文章

然后 懂了 = =
------解决方案--------------------
探讨

首先输入 www.google.com.hk

然后搜索 java 多态

然后阅读三页搜索结果里的文章

然后 懂了 = =
  相关解决方案