我何时使用List,何时使用ArrayList,还使用Java中的LinkedList?

时间:2014-09-13 11:56:24

标签: java list arraylist linked-list

何时使用List以及何时在Java中使用ArrayList?请在实际情况方面加以说明,而不是将其应用于另一个。谢谢!

编辑:另外,LinkedList。使用这些的商业情况,谢谢,这就是这个问题的不同之处。

2 个答案:

答案 0 :(得分:0)

List是一个界面。另外两个是其中的实现。 您最希望对接口进行编码。那就是你会做的事情

List<String> strList = new ArrayList<String>();

稍后在编码过程中,您可能会发现LinkedList在您的场景中具有更好的性能,因此您只需要更改一个位置。或者你可能不关心使用哪种具体实现,你只需要“某种列表”。然后,您可以使用注入的List实现。像这样:

class ExampleClass{
    private List<String> strList = null;

    // We don't know and we don't care if Array or Linked List.
    public ExampleClass( List<String> aList ){
        strList = aList;
    }

    //...
}

有关实现之间的差异,请参阅注释中给出的链接“可能重复...”或JavaDoc。

答案 1 :(得分:-1)

  

***两个列表实现之间没有区别   例子。但是,您可以进一步使用的方式有所不同   代码中的变量myList。

     

将列表定义为:

     

列出myList = new ArrayList();你只能调用方法和参考   属于List类的成员。如果您将其定义为:

     

ArrayList myList = new ArrayList();你将能够调用ArrayList   具体方法除了使用ArrayList特定成员外   从List继承的那些。

     

然而,当您在第一个中调用List类的方法时   例如,在ArrayList中重写,然后是ArrayList中的方法   将被称为列表中的那个。

     

这就是所谓的多态性。你可以阅读它。***

此答案由ATrubka here

提供