将ArrayList <t>转换为String []不会将正确的元素放入String []

时间:2016-11-23 03:20:32

标签: java arraylist

我在程序中有一个方法,它接受一个ArrayList对象:

private ArrayList<T> list;

然后可以使用此方法获取所有项目,将它们复制到String Array,然后从原始列表中删除项目。

以下是方法:

public String[] takeAll()
{
    if (this.list.size() <= 0)
    {
        throw new NoSuchElementException("Unable to take elements from empty array list");
    }//checks if list is empty

    String[] targetArray;
    targetArray = list.toArray(new String[list.size()]); //adds the Objects to the String[] targetArray

    list.clear();

    return targetArray;
}

主要测试这个:

    public static void main(String args[])
{
    SimpleList a;
    a = new SimpleList(Position.FIRST, Position.LAST);
    String[] b;
    a.list.add("thing1");
    a.list.add("thing2");
    a.list.add("thing3");
    a.list.add("thing4");
    b = a.takeAll();
    System.out.println("The String Array b contains: " + b);
}

当我运行它时,它返回奇怪的东西:

String Array b包含:[Ljava.lang.String; @ 15db9742

我需要更改什么来实际打印出b应显示的地方{&#34; thing1&#34;,&#34; thing2&#34;,&#34; thing3&#34;,&#34; thing4&#34;}?

2 个答案:

答案 0 :(得分:-1)

在Java中,如果要求它打印像这样的对象,它将打印该对象的toString()。打印数组元素的最简单方法是通过for循环运行它并打印数组的每个元素。

答案 1 :(得分:-1)

尝试Arrays.toString()方法:

System.out.println("The String Array b contains: " + Arrays.toString(b));