(1) List<?> myList = new ArrayList<?>();
(2) ArrayList<?> myList = new ArrayList<?>();
Run Code Online (Sandbox Code Playgroud)
我理解,使用(1),可以交换List接口的实现.似乎(1)通常在应用程序中使用而不管需要(我自己总是使用它).
我想知道是否有人使用(2)?
此外,经常(并且我可以得到一个例子)情况实际上需要使用(1)over(2)(即where(2)不足以对接口和最佳实践等进行编码)
我最近在办公室的android项目中使用了ArrayList,我在List和ArrayList之间有点混淆,两者的区别是什么,我应该使用什么?
我也看到了它的一些实现.
List<SomeObject> myList = new ArrayList<SomeObject>();
ArrayList<SomeObject> myList = new ArrayList<SomeObject>();
Run Code Online (Sandbox Code Playgroud)
这两个实例有什么区别?
Java中的ArrayList,List和Collection几乎以相同的方式运行,并且它们有许多共同的方法.如果是这样的话,那么它们之间的主要区别是什么?以下简单的代码片段演示了它.
package collections;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
final public class Main
{
public static void main(String[] args)
{
Collection<String> collection=new ArrayList<String>();
List<String>list=new ArrayList<String>();
ArrayList<String>arrayList=new ArrayList<String>();
collection.add("A");
collection.add("B");
list.add("A");
list.add("B");
arrayList.add("A");
arrayList.add("B");
Iterator<String>collectionIterator=collection.iterator();
Iterator<String>listIterator=list.iterator();
Iterator<String>arrayListIterator=arrayList.iterator();
while(collectionIterator.hasNext())
{
System.out.println(collectionIterator.next());
}
while(listIterator.hasNext())
{
System.out.println(listIterator.next());
}
while(arrayListIterator.hasNext())
{
System.out.println(arrayListIterator.next());
}
}
}
Run Code Online (Sandbox Code Playgroud)
何时何地使用ArrayList,Collection和List?在哪些特定情况下,它们之间的差异可能是显着的?