日期:2014-05-20  浏览次数:20710 次

请问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。这个是肯定的。