2010-02-20 3 views
2

파일에서 입력을 파싱하는 데 문제가 있습니다. 파일은 delimeter 값으로 ':'를 사용하여 줄 단위로 구분됩니다. ArrayList에 입력을받는 데 문제가 있습니다. while 루프 내에서 변수를 사용하는 것이 효과적이지 않기 때문에 생각합니다. newItin 변수가 변경되면 여전히 동일한 객체를 참조하거나 newItin을 추가하는 '여정'ArrayList가 아니라 단지이를 변경합니다. 나는 누군가가 이것을 고칠 수있는 방법에 대한 제안을했는지 궁금했다. 미리 감사드립니다.파일에서 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에 계속 추가합니다.