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,当我希望它看起来像这样[James,Josh,Bob,Billy]。编程新手会很感激帮助。
答案 0 :(得分: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的String。相反,请使用Arrays.toString(tempArray)
方法。所以你的print语句看起来像这样:
System.out.println(Arrays.toString(tempArray));
别忘了import java.util.Arrays
。