有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何为以下场景声明2d数组?

我的程序要求玩家数量,并将输入捕获为整数。现在,对于每个玩家,系统会询问用户需要击球多少次。用户可以输入任何整数。对于每一次击球,我都需要记录得分,以便以后计算击球平均数和击球平均数

现在我需要将其存储在2d数组中。 球员#1击球3次,得0分、1分、4分。球员2次击球5次,得1分、1分、0分、3分、4分

{0, 1, 4}
{1, 1, 0, 3, 4}

我正在努力研究如何创建这样一个数组


共 (2) 个答案

  1. # 1 楼答案

    java中的多维数组只是一个数组,其中每个元素也是一个数组(依此类推)。这些阵列中的每一个都可以具有不同的长度:

        int numPlayers = // get number of players.
        int[][] stuff = new int[numPlayers][];
        for(int i = 0; i < numPlayers; i++)
        {
            int numAtBats = // get number of at bats for this player.
            stuff[i] = new int[numAtBats];
        }
    
  2. # 2 楼答案

    您是否可以使用数组?下面使用Collection的方法更灵活

    HashMap<Integer, List<Integer>> scoreCard = new HashMap<>();
    
    scoreCard.put(1, Arrays.asList(0,1,4));
    scoreCard.put(2, Arrays.asList(1,1,0,3,4));
    

    如果要将分数添加到已存在的球员分数列表中:

    scoreCard.put(playerId, scoreCard.get(playerId).add(newScore));
    

    如果要计算给定球员的击球平均数:

    List<Integer> scores = scoreCard.get(playerId);
    scores.stream().reduce(0, Integer::sum)/scores.size();
    

    等等