黑马程序员技术交流社区

标题: 关于集合的问题求教 [打印本页]

作者: 郝少普    时间: 2012-11-18 22:40
标题: 关于集合的问题求教
本帖最后由 sp000 于 2012-11-18 23:51 编辑

集合中使用泛型有什么好处?
集合中的泛型可以添加什么类型?
可以不可以添加基本类型?为什么?

作者: 凊係柈泩    时间: 2012-11-18 23:08
ArrayList al1 = new ArrayList();
al1.add(1);
al1.add(1L);
al1.add("abc");
String element =  (String) al1.get(0);
System.out.println(element);

ArrayList<String> al1 = new ArrayList<String>();
al1.add(1);
al1.add(1L);
al1.add("abc");
String element =al1.get(0);
System.out.println(element);
可以看一下这个代码,如果我在ArrayList后面加上泛型在调用get方法时避免强制类型转换,
减少装箱拆箱提高性能,减少错误。
集合中泛型可以添加Object类型的引用类型,
泛形要求能包容的是对象类型,而基本类型在java里不属于对象。但是基本类型都有其包装类型,也就是对象类型
作者: 朝花夕拾    时间: 2012-11-18 23:12
1,集合中使用泛型可以保证集合中的所有元素都是某一种类型,而该类型是在new集合的时候才指定的,声明集合类的时候不用把类型写死
2,集合类型可以添加所有Object类型的对象,也可以是数组,或者基本类型,
   但是泛型必须是Object类型的,如果想指定泛型为基本类型的,比如int型,应该使用表示int的类:Integer;
3,不可以指定泛型类型为int,因为int是基本类型,不是Object类,
java里基本类型都有专用的类表示,比如:
int   Integer
long   Long
float   Float
作者: 郝少普    时间: 2012-11-18 23:21
凊係柈泩 发表于 2012-11-18 23:08
ArrayList al1 = new ArrayList();
al1.add(1);
al1.add(1L);

void 算什么类型?
作者: 凊係柈泩    时间: 2012-11-18 23:51
sp000 发表于 2012-11-18 23:21
void 算什么类型?

声明一个指针类型变量
作者: 郝少普    时间: 2012-11-18 23:55
凊係柈泩 发表于 2012-11-18 23:51
声明一个指针类型变量

Void - java.lang 中的 类
Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。
VOID - 类 javax.management.openmbean.SimpleType 中的静态变量
SimpleType 实例描述其 Java 类名称为 java.lang.Void 的值。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2