黑马程序员技术交流社区
标题:
求助,关于String与Integer在往集合中add的问题,如下:
[打印本页]
作者:
潜伏
时间:
2013-11-20 10:05
标题:
求助,关于String与Integer在往集合中add的问题,如下:
ArrayList q=new ArrayList();
q.add("ang");
q.add(23);
今天毕老师说在传入23时候其实有个自动装箱的过程。就是添加一个new Integer(23)
问题有两个:
1,集合中必须传入的是对象????今天毕老师一笔带过了
2,如果是传入对象的话那么字符串是不是也要变成对象,那么岂不是也要new String(“ang“)???
谢谢
作者:
∏艾力克斯※
时间:
2013-11-20 10:14
我们先来看下ArrayList的add方法
add(Object obj) 即要求参数为Object类型
那么,add(23)时,发生了什么呢?
这里有一个装箱的过程
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
复制代码
所以问题1的答案:集合中只能放对象,如果放入基本数据类型,将会自动装箱并放入集合中。
继续:
因为String本身不是基本数据类型,是引用数据类型,所以无需装箱,可以直接放入集合中,
所以问题2的答案:无需new String();
作者:
黄炳期
时间:
2013-11-20 17:04
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2