最近再重新学习容器的一些细节,比第一次接触有了更深的了解。
1、从宏观看容器的概念:
首先是两个大的接口,Collection 和Map。
分别说明:
Collection 下面有两个子接口,分别是Set、List
Set有一个具体的实现类--HashSet;
List 有两个实现类,分别是LinkedList和ArrayList;
Map有一个具体的实现类--HashMap;
这些实现类都有自己的特点和优劣势,视具体情况选择使用。
每一层接口都有自己的方法。使用的时候不必关心实现类如何实现的,只要调用接口的方法就行了。
------------------------------
2、关于创建容器的小问题;
第一种方式:
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()方法,用“ ,“ 分割,最后以] 结尾。
本文详细解析容器与集合接口的使用,包括Collection、Map、Set、List等具体实现类的特点与优劣,以及如何避免在创建容器时的常见问题。
1322

被折叠的 条评论
为什么被折叠?



