a.add("1");
 a.add("2");
 a.add("3");
 a.add("4");
int b[]=new int [4];
b=a.toArray();    //这里会抱错``` 该怎么改呀?

解决方案 »

  1.   

    ArrayList<String> a = new ArrayList<String>();
    a.add("1");
    a.add("2");
    a.add("3");
    Object[] str = new String[3];
    str =  a.toArray();
    for(int i=0;i<str.length;i++){
    System.out.println(str[i]);
      

  2.   

    List a = new ArrayList();
    a.add("1"); 
    a.add("2"); 
    a.add("3"); 
    a.add("4"); 
    Object b[]=new Object [4]; 
    b=a.toArray(); 
      

  3.   

    ArrayList a = new ArrayList();
    a.add(1);
    a.add(2);
    a.add(3);
    a.add(4);
    Integer b[]=new Integer [4];
    b=(Integer[])a.toArray();
      

  4.   

    Object 不能转成基本类型的吧
      

  5.   


    这个代码是错的,在没有多态的情况下:Object是不能强制类型转换成Integer的。 2楼的正解ArrayList<Integer> a = new ArrayList<Integer>();
    a.add(1);
    a.add(2);
    a.add(3);
    Object[] i = new Integer[3];
    i =  a.toArray();
    或者可以使用toArray的另外一种重载的方法:<T> T[] toArray(T[] a)ArrayList<Integer> a = new ArrayList<Integer>();
    a.add(1);
    a.add(2);
    a.add(3);
    Integer[] i = new Integer[3];
    i =  a.toArray(i);  
      

  6.   

    今天刚好也碰到这个问题
    用<T> T[] toArray(T[] a) ;这个可以
      

  7.   

    正解:
    ArrayList list=new ArrayList();
           list.add(1);
           list.add(2);
           list.add(3);
           list.add(4);
           Integer[] result=new Integer[list.size()];
           result=(Integer[]) list.toArray(result);
           System.out.println(result[0]);
      

  8.   

    ArrayList<Integer> a = new ArrayList<Integer>();用泛型,就不需要转来转去了,方便一些哦。
      

  9.   

    楼主要注意的你的数组类型 因为集合类的对象是Object类型
      

  10.   

    List<这里添的是类型> a=new ArrayList<类型同前面的>();
    这里就确定了 你要添加的类型 必须是前后相同的。