我必须生成一个程序,它可以逐行读取以下形式的输入文档:
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/