java - 如何实现一个多维数组,其中第一维随着添加更多第二维数组而改变大小?

标签 java arrays collections multidimensional-array

我必须生成一个程序,它可以逐行读取以下形式的输入文档:

FootballTeamName1 : FootballTeamName2 : FootballTeam1Score : FootballTeam2Score

从这里我需要收集整个赛季输入文件中每个球队的统计数据(净胜球/获胜/失利)。

有没有一种方法可以动态调整数组的大小以保存以下形式的多个设置大小的数组:

{团队名称,整数,整数,整数}

一旦实现了这一点,我如何检查我是否添加了与列表中可能已存在的团队名称相同的数组?

最佳答案

Is there a way to dynamically size an array to hold multiple set-size arrays of the form ...

不。 Java 数组的大小在分配时是固定的(使用 new )。您无法改变它,无论是使其变大还是变小。

以下是您的主要选择:

  • 如果您希望数组具有不同的大小,那么您需要分配一个数组,并根据需要将值从旧数组复制到新数组... 。然后用新数组引用更新对旧数组的引用。

  • 更好的方法是使用 List而不是一个数组。您可以增加和减少 List 的大小实例,此外还可以做一些其他有用的事情。

  • 在这种情况下,它看起来像 Map<String, int[]>Map<String, List<Integer>>将是 int[][] 的更好替代方案。 (String 键是团队名称。)

    许多可能的 map 类都可以在这里使用。例如:

    • 一个HashMap将为您提供最快的查找。
    • 一个LinkedHashmap将保留您在输入中遇到的团队的顺序。
    • 一个TreeMap将根据团队名称的某种顺序对团队进行排序。

关于java - 如何实现一个多维数组,其中第一维随着添加更多第二维数组而改变大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27736168/

相关文章:

java - hibernate 错误 : There is no primary key for referenced table

java - 在不同的 PC 上找不到 ResourceBundle

Javascript - 从字符串数字数组中删除逗号

java - 在没有 Arrays.sort 的 Java 中查找数组列表中的最小整数值

java - 为什么API中有java.util的Set?

java - 将两个对象添加到 hashMap?

java - Android 4.0、4.5 和 5.0 设备的不同布局

javascript - 我想循环遍历数组并修改属性

python - 如何继承 defaultdict 并在子类方法中使用它的复制方法?

java - 如何使用 map 获取字符串中第二个最重复的单词