此代码的含义。 为什么列表=链表列表和链接列表
List<String> list1 = new LinkedList<String>();
List<String> list2 = new LinkedList<String>();
此代码的含义。 为什么列表=链表列表和链接列表
List<String> list1 = new LinkedList<String>();
List<String> list2 = new LinkedList<String>();
因为List
是一个接口,其可以被分配给任何实现类。 LinkedList
implements List
,因此该分配是合法的。见programming to an interface。
呃,没有。 IList是界面,列表
@MarvinSmit你正在使用哪种编程语言?这个问题被标记为Java,为此我的答案是正确的。 Java不包含“IList”。 – bcsb1001 2014-08-30 10:24:25
废话。我很抱歉!混合2种多种语言。你是对的。 – 2014-08-30 10:25:54
您会看到该语言的设计特征。
列表是从其它类型的由
public interface List<T> ...
public int size();
public T get(int i);
distinghuished一般API,其中作为实现类被指定为这样:
public class LinkedList implements List ...
publlc class ArrrayList implements List ...
通过声明一个变量是“接口的“您将实现保持开放状态(例如在将来更改或重新分配另一个对象)。你不要高于的变量)。
这也允许有处理任何种类的List的函数。
void f(List list) { ... }
其他一些简单的语言没有这个选择,有一种List,一种Map,一种Set。通过允许程序员选择实现技术质量。就像选择汽车品牌而不是汽车一样。
它是一种铸造方法。列表比LinkedList 更通用。当在参数或变量中使用它时,您现在可以分配/传递从列表派生的任何东西。 (LinkedList,但也DoubleLinkedList,...列表,等等) –
2014-08-30 10:25:27
现在我投票结束你的问题作为重复。如果您不同意我的行动,请随时通知我并说明不重复的原因。在这种情况下,您还应该使用关于您想知道的信息的更多详细信息来编辑您的问题,这些信息不包含在重复问题中。 – Pshemo 2014-08-30 10:54:24