List <string []>方法总是添加相同的值</string []>

时间:2014-11-24 13:34:11

标签: java arraylist

在我的Java项目中,我想读取从txt文件到List方法的值。值似乎是; 1 kjhjhhkj 788 4 klkkld3 732 89 jksdsdsd 23 行数可变。我尝试过这些代码并在所有索引中获得相同的值。 我该怎么办?

    String[] dizi = new String[3];

    List<String[]> listOfLists = new ArrayList<String[]>();

    File f = new File("input.txt");

    try {
        Scanner s = new Scanner(f);

        while (s.hasNextLine()) {
            int i = 0;
            while (s.hasNext() && i < 3) {
                dizi[i] = s.next();
                i++;
            }
            listOfLists.add(dizi);
        }
    } catch (FileNotFoundException e) {
        System.out.println("Dosyaya ba?lanmaya çal???l?rken hata olu?tu");
    }
    int q = listOfLists.size();
    for (int z = 0; z < q; z++) {
        for (int k = 0; k < 3; k++) {
            System.out.print(listOfLists.get(z)[k] + " ");
        }
    }

2 个答案:

答案 0 :(得分:0)

String [] dizi = new String [3];

dizi是一个全局变量,每次都在循环中被覆盖。这就是为什么你在所有索引上获得相同的值为什么每次在添加到列表之前创建一个新实例。

答案 1 :(得分:0)

您将相同的引用放在列表中,在while循环中创建一个新数组。

while (s.hasNextLine()){

   String[] dizi = new String[3]; //new array

   int i = 0;
   while (s.hasNext() && i < 3)
   {           
       dizi[i] = s.next();
       i++;                
   }
   listOfLists.add(dizi);
}