2017-09-15 79 views
-2
ArrayList<String> nameList = new ArrayList<String>(); 
    nameList.add("James"); 
    nameList.add("Joe"); 
    nameList.add("Josh"); 
    nameList.add("Bob"); 
    nameList.add("Billy"); 
    System.out.println("The names are:\n " + nameList); 

    nameList.remove(1); 
    System.out.println("Find the index 1 and remove their name from the list:\n "+ nameList); 

    nameList.size(); 
    System.out.println("Currently the ArrayList holds " + nameList.size() + 
         " names after removing the name of index 1"); 

    String[] tempArray= new String[nameList.size()]; 
    tempArray = nameList.toArray(tempArray); 

    System.out.println(tempArray); // I want it to display the values of the ArrayList 

    } 



} 

我得到的輸出是[Ljava.lang.String; @ 4554617c當我希望它看起來像這樣[詹姆斯,喬希,鮑勃,比利]。編程新手會欣賞幫助。ArrayList以數組不顯示我想要的方式

回答

0

一些事情。首先,這個代碼可以減少。

String[] tempArray= new String[nameList.size()]; 
tempArray = nameList.toArray(tempArray); 

可能成爲

String[] tempArray= nameList.toArray(new String[nameList.size()]); 

如果我沒有記錯的話。其次,ArrayList會自動調整自身的大小,不需要任何代碼。它是如何做的,這是一個全新的問題。

最後。在Java中打印對象的方式是,如果它們不是初選(int,bool,long,char ...),則使用它們的.toString()方法打印它們。在ArrayLists上,這個.toString()方法返回一個漂亮的列表表示。但是數組並沒有定義這個方法,而是將它們打印爲一些與JVM相關的字符串。而應使用Arrays.toString(tempArray)方法。因此,您的打印聲明如下所示:

System.out.println(Arrays.toString(tempArray)); 

別忘了import java.util.Arrays

+0

謝謝!我認爲沒有人會回答,因爲我的帖子由於某種原因一直被拒絕。 –

+0

@TrushPatel @TrushPatel如果您認爲此答案有幫助,請點擊角落中的綠色複選標記to以向社區顯示此答案有幫助 – vikarjramun

+0

@TrushPatel由於您可以通過Google搜索輕鬆找到解決方案,因此您的帖子被降低了投票率數組'谷歌的第一篇文章是你的問題重複的問題。 – Oleg

相關問題