2016-02-06 58 views
-4

我HAVA实现了一个通用的ArrayList与的Java /泛型

public Object[] toArray() 
{   
    return elementData; 
} 

能够以后排序。当我试图让这些元件,

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

    list.add(10000); 
    list.add(1000); 
    list.add(100); 
    list.add(10); 
    list.add(1); 

    Object[] a = list.toArray(); 

    for(Object o:a) 
    { 
     System.out.println(a); 
    } 

它打印“[Ljava.lang.Object; @ 2a139a55”这样的事情,但是运行时类型必须是整数这里,是不是?

+1

这是* not * generic。它是一个“对象”数组。 – Idos

回答

4

一个错字这里:

for(Object o:a) 
{ 
    System.out.println(a); 
} 

应该

for(Object o:a) 
{ 
    System.out.println(o); 
} 

顺便说一句,只是打电话System.out.println(list);就够了这里。

+0

或者,如果这不是一个例子,你真的只想打印数组:http://stackoverflow.com/questions/409784/whats-the-simplest-way-to-print-a-java-array – Thilo

+1

顺便说一句,你可以遍历列表本身,不需要将其转换为数组。列表还有一个“可用的”'toString'方法。 (for Object o:list){' – Thilo

+0

@Thilo在评论中我的回答有什么问题? –