0

所以我试图从一个名为 directory.txt 的文件中将名称添加到一个新列表中,该文件有 1000 个包含名字、姓氏和电话号码的对象;像这样的东西(道奇,尼克 765-123-2312)。当我在没有“for循环”的情况下运行下面的程序时,我可以成功地从 .txt 文件中添加第一个对象并将其打印出来。但是,当我添加一个 for 循环时,例如 for(int i =0; i < 1000; i++),它出于某种原因跳到列表的末尾并在第一个位置输入 1000 个对象并跳过其余部分。我想不通!谢谢您的帮助。

新代码;

 import java.io.File;
  import java.io.FileNotFoundException;
  import java.util.ArrayList;
  import java.util.Scanner;

  import bsu.edu.cs121.names.Names;
  import bsu.edu.cs121.quickSort.QuickSort;



   public class NameTester {


public static void main(String[] args)throws FileNotFoundException {


    ArrayList<Names> namelist= new ArrayList<Names>();

    Scanner file = new Scanner(System.in);
    System.out.println("Please enter the name of the phone book file: ");
    String newFile = file.next();
    File inputFile = new File("/Users/Latif/Desktop/workspace/CS121 Project4/src/" + newFile);
    Scanner readFile = new Scanner(inputFile);
    while (readFile.hasNextLine()){ //start while

                String lastName = readFile.next();
                String firstName = readFile.nextLine();
                String phoneNumber = readFile.nextLine();
                namelist.add(new Names(firstName, lastName, phoneNumber));


    }


    QuickSort newSort = new QuickSort(namelist);

    System.out.println(namelist.get(1) + " " +  namelist.get(2));




}

}

4

1 回答 1

1

因为您每次都将名称数据插入到您的名称列表数组的索引 [0] 中,所以每次循环您都在替换以前的数据,最后您会得到一个等于最后一个条目的项目。您需要为每个分配正确的数组索引。

nameslist[i] = new Names(first, last, number);
于 2013-07-11T23:13:30.303 回答