输出ArrayList的大小为零

时间:2016-10-02 08:32:17

标签: java list arraylist

private static List<Integer> parseStringArrayList(List<String> input) {
    System.out.println(input.size());
    List<Integer> output = new ArrayList<Integer>(input.size());
    for (int index = 0; index < output.size(); index++) {
        output.set(index, Integer.parseInt(input.get(index)));
    }
    return output;
}

输出的大小始终为零。

帮助?

3 个答案:

答案 0 :(得分:0)

使用大小初始化Arraylist不会设置arraylist的大小,只会修改大小以添加或删除元素。表示在分配内存之前列表可以拥有的节点数的容量是您实际定义的内容。

private static List<Integer> parseStringArrayList(List<String> input) {
System.out.println(input.size());
List<Integer> output = new ArrayList<Integer>(input.size());
for (int index = 0; index < input.size(); index++) {
    output.add( Integer.parseInt(input.get(index)));
}
return output;
}

当你添加和增加时,你可以使用add代替,在你的情况下会做同样的事情。 并且您想要添加输入的内容,以便最好将urst限制为input.size()

答案 1 :(得分:0)

您应该阅读ArrayList的文档,容量和大小之间有区别: Distinction between the capacity of an array list and the size of an array

new ArrayList(5).size() != new int[5].length

答案 2 :(得分:0)

由于Eran提到你做错了什么,我想建议另一种方法来实现parseStringArray方法。

private static List<Integer> parseStringArrayList(List<String> input) 
{
    List<Integer> output = new ArrayList<Integer>();
    for (String data : input) {
        output.add(Integer.parseInt(data));
    }
    return output;
}