请问ArrayList可以存储简单数据类型吗?
请问ArrayList可以存储简单数据类型吗?我在书上看见说是不可以的,可是我试了一下却是可以的,什么错也没有报啊
------解决方案--------------------JDK 1.5有 boxing 和 unboxing.
------解决方案--------------------不可以
在集合中操作的一定是对象,而不是简单类型的数据,只能对它的封装类操作。
其实你做个实验就能出来结果!
------解决方案--------------------ArrayList里不能存放int,char,byte...之类的基本数据类型
但可以存放String,Date...这些类型(对象);
------解决方案--------------------2偶正解
JDK5.0新特性介绍
3.自动装包/拆包(Autoboxing/unboxing)
自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制
解决了我们的问题。
int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.
Integer b = new Integer(2);
c.add(b + 2);
这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.
------解决方案--------------------不可以
------解决方案--------------------JDK5.0支持boxing和unboxing
实际上你调用add方法的时候JDK已经帮你装箱成一个Integer对象了
------解决方案--------------------你把98作为参数放进去时 系统已经自动做了封箱操作 用包装类包装成Integer类型 一般来说 集合类是来操作对象
------解决方案--------------------d
------解决方案--------------------1.5以后可以啊
不过实际存放的是Integer类型
ArrayList list = new ArrayList();
list.add(98)
相当于
ArrayList list = new ArrayList<Integer>();
list.add(new Integer(98))
------解决方案--------------------坚决地说,不可以,即使boxing和unboxing,但存放的还是对象。
------解决方案--------------------o
------解决方案--------------------不可以的 自己的动作一下 就知道了 别那么绝对
------解决方案--------------------我写了个测试例子 用的JDK1.5 可以的 代码如下:
Java code
import java.util.ArrayList;
import java.util.List;
public class Test{
public static void main(String[] s){
List t = new ArrayList();
t.add(98);
t.add(99);
for(int i = 0; i < t.size(); i++){
System.out.println(t.get(i));
}
}
}
------解决方案--------------------
了解,学习了!
------解决方案--------------------
顶2,5 楼
------解决方案--------------------
向5楼学习
------解决方案--------------------
最好这么写ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(98);
这样即便放进去再取出来还是Integer形的不会变成Object
------解决方案--------------------
同意21楼的,!!!!!!!
------解决方案--------------------
不可以! List<int> list=new java.util.ArrayList<int>()你试试看肯定报错
------解决方案--------------------
1.5以后的JDK可以的。
5楼的都已经说的很明白了。
如果不可以,说明是你们的JDK版本低于1。5。这个是肯定的。