public static void demo()
{
HashMap<String,List<Student>> czbk = new HashMap<String,List<Student>>();
List yure = new ArrayList<Student>();
List jiuye = new ArrayList<Student>();
}
以上代码中的List处为何不用ArrayList呢?它们分别适用那些场合?
List yure = new ArrayList<Student>();
List jiuye = new ArrayList<Student>();
这里首先得明确一点 List是一个接口,而Arraylist是List的一个具体实现类,LinkedList也一样是一个具体实现类。List是“爸”ArrayList与LinkedList是其“儿子”,是一种实现关系。
在视频里一定听说过“将子类对象赋给父类引用”这句话吧,这里就是这种情况,将ArrayList对象赋给List的引用,这是多态的体现。这样做的好处是不论下面的实现类怎么变,所有用的方法都 是List的方法,如果需要要改变一下数据结构,比如将Arraylist改为Linkedlist,那直接改new的对象就行了,其他的方法之类的代码都不需要改动。
总的来说,用List而不用其实现类操作集合的好处是增强代码可变性,灵活性。
至于使用情况,一般情况下集合的操作List都 可以实现,用list就行,如果非得用Arraylist,可以临时泛型并向下转型来使用。