为什么ArrayList中添加int类型也可以,不是说不能添加基本数据类型吗? package studyday07; import java.

packagestudyday07;importjava.util.ArrayList;publicclassTestCollectionDemo{/***@parama... package studyday07;
import java.util.ArrayList;
public class TestCollectionDemo {
/**
* @param args
*/
public static void main(String[] args) {
ArrayList list = new ArrayList();
ArrayList li = new ArrayList(8);
System.out.println(li.size()+"-------"+list.size());
li.add(8);
int a = 9;
li.add(a);
li.add("C");
li.add("A");
li.add("E");
li.add("B");
li.add("D");
li.add("F");
li.add(1,"A1");
System.out.println(li.size()+li.toString());
System.out.println(li);
li.remove("D");
li.remove(2);
System.out.println(li.size());
System.out.println(li);
}
}
展开
 我来答
only_flowers
2012-12-28
知道答主
回答量:15
采纳率:0%
帮助的人:11.8万
展开全部
基本数据类型都有对应的封装类型,例如int—Integer,double—Double。
在调用add方法的时候基本数据类型被自动装箱成其对应的对象类型。所以是可以添加进去的
sylar0728
推荐于2017-11-25 · TA获得超过559个赞
知道小有建树答主
回答量:200
采纳率:100%
帮助的人:30.6万
展开全部
java1.5之后有自动装箱拆箱 在放入容器中时基本数据类型会被自动装箱成相应的引用类型。而且在使用容器时最好使用泛型,即 List<Integer> list=new ArrayList<Integer>();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hdparrot
2012-12-28 · TA获得超过2403个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1145万
展开全部
int类型会被自动包装为Integer
包括float double byte long char都是这样。
追问
嗯自动包装,那在那种情况会提示错误呢?就是不会自动包装呢?谢谢
追答
只要基本类型自动包装以后,能满足方法参数的类型要求,就会发生自动包装。
不过有一点需要注意,自动包装类不会自动转型。
如果一个方法需要的参数是Double类型的,你传一个int进去,它不会自动转为double再包装为Double,这个时候就会出错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
htp_11
2012-12-28
知道答主
回答量:31
采纳率:0%
帮助的人:16.8万
展开全部
hdparrot是对的。
你说出错的时候?我想应该是在没有赋值的情况下吧。
int默认值是0
而Integer的默认值 是null
不过可以使用类型强制转换。

方法如下:
Integer转成int可以用:Integer.parseInt();int转成Integer可以用:new Integer();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
main_inf
2012-12-28 · TA获得超过1575个赞
知道小有建树答主
回答量:811
采纳率:100%
帮助的人:533万
展开全部
原始类型int不能加到容器里面,要用Integer 包装类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式