2010-02-20 25 views
2

我在解析來自文件的輸入時遇到問題。該文件由行分隔,使用':'作爲分隔符值。我在輸入ArrayList時遇到了問題,我認爲這是因爲我無法在while循環中使用變量。如果變量newItin改變,它仍然引用同一個對象,或者更確切地說就是'行程'ArrayList附加newItin,或者只是改變它。我想知道如果有人對我如何解決這個問題有任何建議。先謝謝你。解析來自文件的輸入到ADT ArrayList

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(); 

回答

1

您需要將「新行程」移動到循環中,並且每次都創建一個新行程。否則,你會一直向ArrayList添加同一個對象。