为了账号安全,请及时绑定邮箱和手机立即绑定

使arrayList.toArray()返回更多特定类型

使arrayList.toArray()返回更多特定类型

莫回无 2019-12-20 11:11:19
因此,通常ArrayList.toArray()会返回一种Object[]....,但假设它是一个 Arraylistobject对象Custom,我如何使它toArray()返回Custom[]而不是类型Object[]?
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

像这样:


List<String> list = new ArrayList<String>();


String[] a = list.toArray(new String[0]);

在Java6之前,建议编写:


String[] a = list.toArray(new String[list.size()]);

因为内部实现无论如何都会重新分配适当大小的数组,因此您最好预先进行设置。由于Java6首选空数组,请参见.toArray(new MyClass [0])或.toArray(new MyClass [myList.size()])?


如果您的列表输入不正确,则需要在调用toArray之前进行强制类型转换。像这样:


    List l = new ArrayList<String>();


    String[] a = ((List<String>)l).toArray(new String[l.size()]);


查看完整回答
反对 回复 2019-12-20
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

它实际上并不需要返回Object[],例如:


    List<Custom> list = new ArrayList<Custom>();

    list.add(new Custom(1));

    list.add(new Custom(2));


    Custom[] customs = new Custom[list.size()];

    list.toArray(customs);


    for (Custom custom : customs) {

        System.out.println(custom);

    }

这是我的Custom课:


public class Custom {

    private int i;


    public Custom(int i) {

        this.i = i;

    }


    @Override

    public String toString() {

        return String.valueOf(i);

    }

}


查看完整回答
反对 回复 2019-12-20
?
大话西游666

TA贡献1817条经验 获得超14个赞

我得到了答案...这似乎工作得很好


public int[] test ( int[]b )

{

    ArrayList<Integer> l = new ArrayList<Integer>();

    Object[] returnArrayObject = l.toArray();

    int returnArray[] = new int[returnArrayObject.length];

    for (int i = 0; i < returnArrayObject.length; i++){

         returnArray[i] = (Integer)  returnArrayObject[i];

    }


    return returnArray;

}


查看完整回答
反对 回复 2019-12-20
  • 3 回答
  • 0 关注
  • 915 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信