黑马程序员技术交流社区
标题:
求解释
[打印本页]
作者:
马伟恒
时间:
2012-4-24 18:39
标题:
求解释
集合collection中的s1.add("123")和s1.add(123)有什么区别
作者:
chenwei
时间:
2012-4-24 18:43
"123"是字符串String类型
123会自动转成Integer
作者:
胡元
时间:
2012-4-24 18:44
s1.add("123")是说集合s1中添加字符串对象"123",
s1.add(123)就是一错误的语句,因为集合中只能装对象,不能装基本类型的数据!
如果你想把 一百二十三 这个数据对象装进去
Integer i = 123,
s1.add(i);
作者:
程序猿
时间:
2012-4-24 19:11
这是一个测试程序,你看一下结果就明白了
public class oy {
public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add(123);
al.add("123");
Iterator it=al.iterator();
System.out.println("第一个元素:"+it.next().getClass());
System.out.println("第二个元素:"+it.next().getClass());
}
}
结果:
第一个元素:class java.lang.Integer
第二个元素:class java.lang.String
很明显,不加""双引号的参数,传进去得的是封装类Interger类型。加了""双引号的参数是迭代出来的是String类型。
作者:
程序猿
时间:
2012-4-24 19:16
集合类只能存放对象,不加双引号的123,由于int是基本类型,不能传入集合类。所以会变为封装类Integer类型再传入。
作者:
应佳锋
时间:
2012-4-24 19:21
没什么区别 一个加进去的是字符串 一个加进去的是数据 数据会自动转换成Integer
Collection coll=new ArrayList();
相当于
Collection<Object> coll=new ArrayList<Object>();
JDK 1.5增加了自动装箱拆箱的功能
所以 你输入进去的是数字它也会自动转换成别的类型
作者:
龚正军
时间:
2012-4-24 19:48
楼上说得对,
应该这么说:集合collection中的s1.add("123")和s1.add(123)
collection只能作用于对象,s1.add("123")中"123"和s1.add(123)中的123都是对象,但是这个对象是有java自动给你完成了!也就是允许你这么简化写了。
但是你必须知道你简化了的是:s1.add("123") ;简化了:String x=new String("123");
s1.add(123) ; 简化了:Integer x =new Integer(123);
上面2个是java支持省略的。简化了书写。但是用equls比较的话,他们2个是true
作者:
徐鑫
时间:
2012-4-24 19:56
区别就是s1.add("123")//添加的是String型的
s1.add(123)//123自动装箱为Integer型
作者:
林德燚
时间:
2012-4-24 20:52
集合collection中的s1.add("123")和s1.add(123)有什么区别
严格说容器是不能存储基本数据类型的,但提供了自动装箱机制,当存入基本数据类型就会被转换成对应的引用数据类型;
s1.add("123")存入的是String类型;
s1.add(123)存入的是Integer类型;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2