#java #object #arraylist
#java #объект #Список массивов
Вопрос:
Я делаю программу для продажи игр. Теперь в моем коде будет отображаться только последний отзыв, который пишет клиент, но вместо этого я хотел бы, чтобы он содержал список всех отзывов, которые получила игра. Я думал, можно ли было бы использовать an ArrayList
в качестве переменной вместо String
обзора. Вот пример того, как это выглядит сейчас.
public class Game {
private String gameName;
private int gamePrice;
private String gameReviews;
public Game(String gameName, int gamePrice, String gameReviews) {
this.gameName = gameName;
this.gamePrice = gamePrice;
this.gameReviews = gameReviews;
}
}
и затем, если я хочу создать объект, как он будет выглядеть, чтобы заменить старый, который у меня был?
public class Games {
public static void main(String[] args) {
String gameN = "Name";
int gameP = 10;
String gameR = "Review";
Game game = new Game(gameN, gameP,gameR);
}
}
Ответ №1:
Можно использовать ArrayList вместо String .
import java.util.ArrayList;
class Game {
private String gameName;
private int gamePrice;
private ArrayList<String> gameReviews;
public Game(String gameName, int gamePrice, ArrayList<String> gameReviews) {
this.gameName = gameName;
this.gamePrice = gamePrice;
this.gameReviews = gameReviews;
}
public static void main(String[] args) {
String gameN = "Name";
int gameP = 10;
ArrayList<String> gameReviews = new ArrayList<String>();
gameReviews.add("Review 1");
gameReviews.add("Review 2");
gameReviews.add("Review 3");
gameReviews.add("Review 4");
Game game = new Game(gameN, gameP,gameReviews);
}
}
Комментарии:
1. Работал хорошо, спасибо.
Ответ №2:
Если связь между вашей игрой и обзорами один ко многим, тип данных ваших обзоров может быть List<String>
public class Game {
private String gameName;
private int gamePrice;
private List<String> gameReviews;
public Game(String gameName, int gamePrice, List<String> gameReviews) {
this.gameName = gameName;
this.gamePrice = gamePrice;
this.gameReviews = gameReviews;
}
public Game(String gameName, int gamePrice) {
this.gameName = gameName;
this.gamePrice = gamePrice;
this.gameReviews = new ArrayList<>();
}
public void addGameReview (String gameReview) {
this.gameReviews.add(gameReview);
}
}
Затем, если у вас есть список обзоров при инициализации, вы просто передаете его в конструктор:
List<String> reviews = new ArrayList<>();
Game game = new Game(gameN, gameP, reviews);
В противном случае у вас может быть конструктор, который инициализирует gameReviews пустым ArrayList
и добавляет обзор после инициализации
Game game = new Game(gameN, gameP);
game.addGameReview("This is a review of Game ...");