Цель: Добавить новый объект фильма в существующий фильм [], если есть место для добавления.Добавление объекта в массив объектов
Код:
// Create the new Movie object
Movie movieToAdd = new Movie (newTitle, newYear);
// Add it to the Array
count = addMovie(movieList, movieToAdd, count);
Метод Код:
public static int addMovie (Movie[] movieArray, Movie addMe, int count)
{
if (count != movieArray.length)
{
count++;
movieArray[count] = addMe;
System.out.println("Movie added successfully!");
}
else
{
System.out.println("Array size of " + movieArray.length + " is full. Could not add movie.");
}
return count;
}
ВОПРОС: В настоящее время, когда массив MovieList распечатывается, новые отпечатки входа в нуль, даже если созданный объект Movie напечатает просто отлично за пределами пути. Поэтому я предполагаю, что лучший способ добавить объект addMe в массив - создать второй новый объект Movie, инициализированный в массиве, и построить его по частям (так что addMe останется в памяти и «копией» addMe будут установлены в массив).
Это для меня не очень эффективно (я ненавижу дополнительные данные о ...). Есть лучший способ сделать это?
ПРИМЕЧАНИЕ. Объект Movie фактически имеет 10 частных элементов данных. Для этого упражнения мне нужно было только передать два параметра и установить значения по умолчанию для остальных. Вы можете себе представить, почему я не использовать десять заявлений GET, чтобы построить этот массив и дополнительные объекты, застрявшие в памяти ...
EDIT: Текущий распечатайте (Порции):
Menu options:
1. Show all movies:
2. Show movies sorted - manual
3. Show movies sorted - auto
4. Show Movie by Index
5. Search for movie Linearly
6. Search for movie using Binary Search
7. Add a movie
20. Quit
Please choose an option from the menu: 1 to 20:
7
Let's add the information for the new movie. Give me a Title and 4-digit Year, and I'll fill in the rest.
Title?
Me
Year of Release?
Please enter a valid 4 digit year: 1000 to 9999:
1213
Movie added successfully!
Menu options:
1. Show all movies:
2. Show movies sorted - manual
3. Show movies sorted - auto
4. Show Movie by Index
5. Search for movie Linearly
6. Search for movie using Binary Search
7. Add a movie
20. Quit
Please choose an option from the menu: 1 to 20:
25 | Les Vampires (1915) | Louis Feuillade | "Edouard Mathe, Marcel Levesque" | 1915 | 0 | http://www.imdb.com/title/tt0006206/ | http://www.guardian.co.uk/film/movie/117077/vampires | France | Horror | 175
null | 176
=============================================================================
MORE редактирует : Код конструктора и сеттеров - все это ДОЛЖНО работать правильно.
public Movie (String t, int y)
{
// passed in
this.title = setTitle(t);
this.year = setYear(y);
// defaults
this.ranking = 0;
this.director = "No Director";
this.actors = "No Actors";
this.oscars = 0;
this.linkIMDB = "No IMDB Link";
this.linkGuardian = "No Guardian Link";
this.country = "No Country";
this.genre = "No Genre";
}
public String setTitle (String newTitle)
{
if (newTitle == null)
{
this.title = "No Title";
}
else
{
this.title = newTitle;
}
return this.title;
}
public int setYear (int newYear)
{
if (newYear >= 999 && newYear <=10000)
{
this.year = newYear;
}
else
{
newYear = 0000;
}
return this.year;
}
_ «когда массив MovieList распечатывается, новая запись печатает как нуль» _ Что? Где? Как? Этот код выглядит отлично. –
Это не C# это? –
Юрий 'System.out.println' является хорошим советом;) – Rogue