A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 郝少普 中级黑马   /  2012-11-18 22:40  /  1300 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sp000 于 2012-11-18 23:51 编辑

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

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
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里不属于对象。但是基本类型都有其包装类型,也就是对象类型

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1,集合中使用泛型可以保证集合中的所有元素都是某一种类型,而该类型是在new集合的时候才指定的,声明集合类的时候不用把类型写死
2,集合类型可以添加所有Object类型的对象,也可以是数组,或者基本类型,
   但是泛型必须是Object类型的,如果想指定泛型为基本类型的,比如int型,应该使用表示int的类:Integer;
3,不可以指定泛型类型为int,因为int是基本类型,不是Object类,
java里基本类型都有专用的类表示,比如:
int   Integer
long   Long
float   Float

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
凊係柈泩 发表于 2012-11-18 23:08
ArrayList al1 = new ArrayList();
al1.add(1);
al1.add(1L);

void 算什么类型?
回复 使用道具 举报
sp000 发表于 2012-11-18 23:21
void 算什么类型?

声明一个指针类型变量
回复 使用道具 举报
凊係柈泩 发表于 2012-11-18 23:51
声明一个指针类型变量

Void - java.lang 中的 类
Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。
VOID - 类 javax.management.openmbean.SimpleType 中的静态变量
SimpleType 实例描述其 Java 类名称为 java.lang.Void 的值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马