如果只是为了看集合里面的内容的话,感觉区别不大,但也只限定一些基本的数据类型,比如8中基本类型跟String类型的,其它类型就不知道效果了。如果添加了泛型,并且是基本类型跟String类型的话,就能看,貌似不添加泛型,只要是8中基本数据类型跟String类型就能显示出来。但如果是其他的对象呢!特别是复杂点的对象,那就看不了里面的内容,只能看对象的引用了,而必须要用迭代器什么的把集合里面的数据取出来,然后再操作了把!比如下面的代码:
public static void main(String[] args) throws Exception {
ArrayList list1 = new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(new ArrayList<String>().add("hello"));
System.out.println(list1);
ArrayList<Integer> list2 = new ArrayList<Integer>();
list2.add(1);
list2.add(2);
list2.add(3);
//list2.add(new ArrayList<String>().add("hello"));不能添加,因为加了泛型
//如果你手痒非要添加的话,可以使用反射,想看效果尅一把下面那行代码注释给去掉
//list2.getClass().getMethod("add", Object.class).invoke(list2, "string"); //添加了一个String类型的对象
System.out.println(list2);
}
输出结果:
[1, 2, 3, true]
[1, 2, 3]
这里就可以看出差别了
list1.add(new ArrayList<String>().add("hello")); 输出是true,不是意料之中的结果
虽然list2添加泛型了,但是//list2.getClass().getMethod("add", Object.class).invoke(list2, "string"); 这行代码可以添加其它的内容进去哦亲!!! |