我不知道为什么stringList的最后一个值(即Banana)没有打印出来或存储在arrayForTheList中。
给出一个字符串列表,以相同顺序返回包含相同字符串的数组
list2Array( ["Apple", "Orange", "Banana"] ) -> {"Apple", "Orange", "Banana"}
list2Array( ["Red", "Orange", "Yellow"] ) -> {"Red", "Orange", "Yellow"}
list2Array( ["Left", "Right", "Forward", "Back"] ) -> {"Left", "Right", "Forward", "Back"}
public String[] list2Array(List<String> stringList) {
String[] arrayForTheList = new String[(stringList.size())];
for (int i = 0; i < stringList.size() ; i++) {
arrayForTheList[i] = stringList.remove(0);
System.out.println(arrayForTheList[i]);
}
return arrayForTheList;
}
答案 0 :(得分:1)
您不应从循环内的List
中删除元素。您可以根据需要清除循环后的List
。
for (int i = 0; i < stringList.size() ; i++) {
arrayForTheList[i] = stringList.get(i);
System.out.println(arrayForTheList[i]);
}
stringList.clear();
答案 1 :(得分:1)
您可以简单地使用列表的toArray()
方法来实现此目的。例如:
String[] arrayForTheList = (String[])stringList.toArray();
希望这会有所帮助。
答案 2 :(得分:1)
替换
for (int i = 0; i < stringList.size() ; i++)
到
for (int i = 0; i < arrayForTheList.length ; i++)
请记住,您的代码清除了List
作为参数接收的代码。