我的程序要求播放器数量并将输入捕获为整数。现在,对于每个玩家,系统会询问用户多少次击球。用户可以输入任何整数。并且对于每个球棒,我需要捕捉得分,以便我以后可以计算击球率和击球平均值。
现在我需要将它存储在2d数组中。 球员#1击球3次,得分0,1,4。球员#2击球5次,得分1,1,0,3,4。
{0, 1, 4}
{1, 1, 0, 3, 4}
我正在努力研究如何创建这样的阵列。
答案 0 :(得分: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];
}
答案 1 :(得分:1)
你有使用数组吗?使用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();
等