Объект, содержащий список массивов

#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 ...");