最近再重新学习容器的一些细节,比第一次接触有了更深的了解。
?
1、从宏观看容器的概念:?
首先是两个大的接口,Collection 和Map。
分别说明:
Collection 下面有两个子接口,分别是Set、List
? ? ? ? ?Set有一个具体的实现类--HashSet;
? ? ? ? ?List 有两个实现类,分别是LinkedList和ArrayList;
Map有一个具体的实现类--HashMap;
?
?
?
这些实现类都有自己的特点和优劣势,视具体情况选择使用。
每一层接口都有自己的方法。使用的时候不必关心实现类如何实现的,只要调用接口的方法就行了。
?
------------------------------
2、关于创建容器的小问题;
第一种方式:
class="java" name="code">Collection c = new ArrayList();
?相当于父类的引用指向子类的对象。这样可以使用Collection接口的所有方法,不能使用List接口的方法。这就使得如果因为后期需要将其改为
Collection c = new LinkedList();
?不会产生任何问题,因为关于对象c的代码不会有任何涉及具体实现类的方法。强烈建议不使用下面的代码
LinkedList c = new LinkedList();
?可能有更深层的原因,还没有接触到(待补充)。
3、
Collection c = new LinkedList(); c.add(new Integer(100));
?不能添加int值,也就是只能添加Object对象。
4、
?
System.out.println(c);
?其实调用的是toString()方法,结果是
[100]
?先打印[,然后调用每个对象的toString()方法,用“ ,“ 分割,最后以] 结尾。
?
?
?