Java 将输入从文件解析到ADT ArrayList

Java 将输入从文件解析到ADT ArrayList,java,file,arraylist,Java,File,Arraylist,解析文件中的输入时遇到问题。文件以行分隔,使用“:”作为delimeter值。我很难将输入输入到ArrayList中,我认为这是因为我在while循环中无效地使用了一个变量。如果变量newItin发生更改,则它仍在引用同一对象,或者更确切地说是附加newItin的“行程”数组列表,或者只是更改它。我想知道是否有人对我如何解决这个问题有任何建议。先谢谢你 ArrayList <Itinerary> itinerary = new ArrayList <Itinerary&

解析文件中的输入时遇到问题。文件以行分隔,使用“:”作为delimeter值。我很难将输入输入到ArrayList中,我认为这是因为我在while循环中无效地使用了一个变量。如果变量newItin发生更改,则它仍在引用同一对象,或者更确切地说是附加newItin的“行程”数组列表,或者只是更改它。我想知道是否有人对我如何解决这个问题有任何建议。先谢谢你

    ArrayList <Itinerary> itinerary = new ArrayList <Itinerary>();
    Itinerary newItin = new Itinerary();
    fileIn.useDelimiter(":");

    while(fileIn.hasNextLine()){
        if(fileIn.hasNext()){
        String dest = fileIn.next();
        String days = fileIn.next();
        newItin.addDestination(dest, Integer.parseInt(days));
        itinerary.add(newItin);}
        fileIn.nextLine();}
    fileIn.close();
ArrayList行程=新建ArrayList();
行程newItin=新行程();
fileIn.useDelimiter(“:”);
while(fileIn.hasNextLine()){
if(fileIn.hasNext()){
字符串dest=fileIn.next();
String days=fileIn.next();
newItin.addDestination(dest,Integer.parseInt(天));
行程。添加(newItin);}
fileIn.nextLine();}
fileIn.close();

您需要将“新行程”移动到循环中,并每次创建一个新的行程。否则,您会不断地将同一对象添加到ArrayList中