【问题标题】:Object that contains ArrayList包含 ArrayList 的对象
【发布时间】:2020-10-23 15:23:15
【问题描述】:

我正在做一个销售游戏的程序。现在在我的代码中,它只会显示客户写的最后一条评论,但我希望它包含游戏获得的所有评论的列表。我在想是否可以将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);
    }
}

【问题讨论】:

    标签: java object arraylist


    【解决方案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);
      }
    
    }
    

    【讨论】:

    • 工作得很好,谢谢。
    【解决方案2】:

    如果你的游戏和评论是一对多的关系,你的评论数据类型可以是List&lt;String&gt;

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 2020-04-13
      • 2012-11-14
      • 2010-12-18
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多