可以使用ArrayList<Integer>,却不可以使用Integer<int>,为什么呢?

解决方案 »

  1.   

    JAVA集合只能存放引用类型的的数据,不能存放基本数据类型
      

  2.   

    只能放对象
    用 Integer 吧
      

  3.   

    我从C++转过来的,C++中的list可以存放任何类型。
      

  4.   

    只能放对象
    用 Integer 吧
      

  5.   

    Integer是int的包装类(wrapper),是对象int是基本数据类型
    在具体的内存分配上对象是放在堆里的,基本数据类型是放在栈里的,看看容器的具体实现,你就能更理解这些了JAVA的集合只能放引用类型另外,我想知道,兄弟用的哪个版本的JDK????jdk1.4?
      

  6.   

    只能存放对象的。而int是基础数据类型的。所以 不能存放。
     其实 用包装器就是 把int 数值转化为对象
      

  7.   

    c++还转过来学JAVA么?
    JAVA有这么火么
      

  8.   

    集合类可以包含Object,String,Float以及Runnable类型的对象。不能用于原始数据类型的列表,例如整型数组。
      

  9.   

    java内存分为四个区.其中堆不是会被垃圾处理机制随时收回.如果你用int = 8, 这个 8 是放在堆里吧?你想存起来的东西,存完就消失有什么用而interage 是类可以放在code的不会消失(我一直这么理解不知道对不高手看看)
      

  10.   

    [Quote=引用 8 楼 runer 的回复:]Integer是int的包装类(wrapper),是对象int是基本数据类型
    在具体的内存分配上对象是放在堆里的,基本数据类型是放在栈里的,看看容器的具体实现,你就能更理解这些了JAVA的集合只能放引用类型另外,我想知道,兄弟用的哪个版本的JDK????jdk1.4?
    [/Quot]
    jdk1.6.0_24
      

  11.   

    int 不是对象 integer是 int的包装类   
      

  12.   

    在 Java 中,集合 才可以放数据,
    Integer不是集合,所以 Integer<int> 不能使用
    List     是集合,所以 List<Integer> 可以用
      

  13.   

    int是基本的数据类型,不是对象啊
      

  14.   

    泛型只能接收一种类
    int是值类型
    Integer才是一个类  包装类
      

  15.   

    Integer不是范型类,没有这样的用法Integer<int>List是范型类,所以可以这样List<Integer>
      

  16.   


    import java.util.ArrayList;
    public class Test1 {
    public static void main(String[] args){
    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(65535);
    System.out.println(list.get(0));
    }
    }
      

  17.   

    回去好好看看java在内存中的存储结构吧。答案楼下别的楼给你解释了,剩下的是我对你的建议。
      

  18.   

    JAVA集合只能存放引用类型的的数据,不能存放基本数据类型
      

  19.   

    JAVA集合只能存放引用类型的的数据,不能存放基本数据类型   貌似是这样
      

  20.   

    泛型只能接收一种类
    int是值类型
    Integer才是一个类 包装类
      

  21.   

    Integer<int> 这个是什么东西 我还真不知道。如果你只是放int为什不用数组?
      

  22.   

    int是基本类型,List里要存放对象的。
      

  23.   


    @Test
    public void kjljli(){
    int a=1;
    int b=2;
    int c=3;
    int d=10;
    int e=11;

    List<Integer> list = new ArrayList<Integer>();
    list.add(a);
    list.add(d);
    list.add(e);
    list.add(b);
    list.add(c);


    Collections.sort(list);
    for(int i=0;i<list.size();i++){
    System.out.println(list.get(i));
    }
      

  24.   

    我目前是这样理解的:Java里的一个“对象变量”对应C++里的指针,ArrayList里放的东西是一列指针,每个指针指向堆里的一个“实际的对象”。而对于int,每个“int变量”都对应一块内存,这块内存有可能在栈里,也有可能在堆里,如果让ArrayList的“指针”指向在栈里的“int变量”,则在释放栈后,ArrayList内的“指针”将指向空引用。
      

  25.   

    public boolean add(E o)
    Appends the specified element to the end of this list.
      

  26.   

    ArrayList<E>中的E只能是引用类型,然而:int,byte,char,long,double,float,boolean...八种类型为基本类型,Integer是int的封装类型,每个基本类型都对应一个封装类,所以只能用Integer,不能用int
      

  27.   

    ArrayList只能存储对象,不能存储基本类型.Integer是int的包装类,用来生成int类的对象,因此Integer是可以的.
      

  28.   

    java就这么规定的,很2是吧,c++多好啊
      

  29.   

    Arraylist里面全都是对象!所以不能让int
      

  30.   

    根源:Java设计选择的单继承类型体系和设计之处没有模板。
      

  31.   

    真正的原因是java中的泛型只能是引用类型,而不能是基本类型。int-->基本类型,Integer-->引用类型。
      

  32.   


    对的 我在C#中使用List<int>没问题