Я беру элементы Movie из двух файлов и добавляю оба содержимого в Arraylist «listOne» и «listTwo», используя сканер для чтения содержимого файла.Эти два списка затем объединяются в один.Однако, хотя сканер хорошо читает файлы, мой .add, похоже, не добавляет их в ArrayLists должным образом.
Я гарантировал, что мои слияния и печати пишут правильно.Как только я это сделал, я сделал отпечаток на том, что читает мой сканер и каково содержимое списка после добавления.Сканер показывает правильную информацию (например, A, J.Edgar, 2011, R, 1), но содержимое списка дает мне базовые значения (т.е. [Название:, Год: 0, Рейтинг: ноль, Отзыв: 0;]).
// Это мой основной класс
Scanner fileScanner; //Scanner to read TestInput1.txt
Scanner fileScannerTwo; //Scanner to read TestInput2.txt
ArrayList<Movie>listOne = new ArrayList<Movie>(); //first list
ArrayList<Movie>listTwo = new ArrayList<Movie>(); //second list
ArraryList<Movie>outList = new ArrayList<Movie>(); //merged&sorted list
try{
fileScanner = GetInputFile("Enter input filename: ");
while(fileScanner.hasNextLine())
{
String[] elements = fileScanner.nextLine().split(",");
if(elements[0].equals("A")) //each movie has "A" to give ok
{
listOne.add(new Movie(elements[1],
Integer.parseInt(elements[2]), elements[3],
Integer.parseInt(elements[4])));
}
}
//The same code but replace "listOne" with "listTwo"
..........
..........
//PrintWriter that works properly
..........
..........
}//end of try
catch(FileNotFoundException ex){
System.out.println("User terminated program");
}
'' '' '' '' '' '' '' '' '' '' '' '' '' '''' '' '' '' '' '' '' '' '' ''
//this is my Movie class
private String movieTitle;
private int releaseYear;
private String rating;
private int movieReview;
public Movie(String Title, int Year, String rating, int Review)
{
movieTitle = "";
releaseYear = 0;
rating = "";
movieReview = 0;
}
public String getTitle()
{
return movieTitle;
}
public int getYear()
{
return releaseYear;
}
public String getRating()
//same stuff
public int getReview()
//same stuff
public int compareTo(Movie other) //haven't used this yet, but will to sort
{
int makeComparison = this.movieTitle.compareTo(other.movieTitle);
if(makeComparison != 0)
return makeComparison;
else
{
if(this.releaseYear != other.releaseYear)
return this.releaseYear - other.releaseYear;
else
return 0;
}
}
public String toString()
{
return String.format("Title: %s, Year: %s, Rating: %s, Review: %s;",
this.movieTitle, this.releaseYear, this.rating,
this.movieReview);
}
Я ожидаю, что результат будет выглядеть как [Название: J.Edgar, Год: 2011, Рейтинг: R, Обзор: 1] но я получаю [Название:, Год: 0, Рейтинг: ноль, Отзыв: 0;]
Вот пример файла: A, J.Эдгар, 2011, R, 1
A, Индиана Джонс и Храм Судьбы, 1984, PG, 1
A, День матери, 2016, PG-13,4
A, История Мира, Часть I, 1981, R, 1
A, Крокодиловый Охотник, 2002, PG, 2