2016-02-06 83 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在評論中我的回答有什麼問題? –