数组列表覆盖内部循环

时间:2012-12-12 11:21:25

标签: java arrays loops arraylist

提前感谢您提供给我的任何帮助!基本上我有一个arraylist,每行三个单词用逗号分隔。我想将逗号上的字符串分开,以创建一个每行一个字符串的新数组列表。我被卡住了,因为在我的循环中每次都会覆盖arraylist,所以我的新数组列表只包含orignal数组列表(array1)的最后一行(逗号分隔的3个字符串)。我已经在循环之外声明了第二个数组列表,但每次都会覆盖它。它可能是非常愚蠢的东西,但这里是代码,任何帮助或指针非常赞赏!..

String[] array = new String[array1.size()];
List<String> array2 = new ArrayList<String>();

for (int i = 0; i < array1.size(); i++) {
array = ((array1.get(i)).split(","));
array2 = Arrays.asList(array1);
}

3 个答案:

答案 0 :(得分:2)

只需添加 array2.addAll 而不是 array2 = ,这样就可以附加吐出操作的结果

   String[] array = new String[array1.size()];
   List<String> array2 = new ArrayList<String>();

for (int i = 0; i < array1.size(); i++) {
    array = ((array1.get(i)).split(","));
     array2.addAll(Arrays.asList(array1));
 }

答案 1 :(得分:0)

如果array1包含文本行,则应该是这样的:

List<String> array1 = ... // your read lines
List<String> splitted = new LinkedList<String();

for(String line : array1) {
    String[] splittedLine = line.split(",");
    splitted.addAll(Arrays.asList(splittedLine));
}

基本上,您的问题是您已将新列表分配给array2,而不是向其添加元素。

答案 2 :(得分:0)

问题有点不清楚,但我的猜测是,而不是覆盖列表

array2 = Arrays.asList(array1);

你想追加到它

array2.addAll(Arrays.asList(array1));

但是请注意,这会为每行提供多个元素,使用列表列表或列表列表(每行一个条目,每个条目都包含一个字段列表)可能会更好。