给定一个字符串列表,返回一个包含相同顺序的相同字符串的数组

时间:2019-01-23 09:37:47

标签: java

我不知道为什么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;
}

3 个答案:

答案 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作为参数接收的代码。