Java在不知道大小的情况下从txt文件填充长数组?
我试图通过读取一个文件来填充一个长数字的数字数组(以及一个相同数字的临时数组)。该文件大约有32000行不同的长数字(每行一个)。我的教授提供的代码如下所示:
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new File("longNumbers.txt"));
Long [] numbers;
Long [] temp;
Long startTime, endTime;
while(in.hasNext()) {
//TODO: populate numbers and temp arrays
}
在所提供的while循环中完成隐含的工作。我的问题是:数组的大小不是固定的吗?如果我们在填充数组之前没有扫描每一行,我们如何知道数组的大小?在检查每一行时,如何填充/实例化这两个数组,我感到非常困惑
# 1 楼答案
可以使用动态大小的数组
ArrayList<Long>
基本上是数组上的包装器,当您试图写越界时,它负责调整大小和复制它。如果不知道粗略的估计,并且进行了太多的重新调整大小,则会产生重新创建数组和复制元素的成本或者
LinkedList
在这里# 2 楼答案
我想你的导师也谈到了如何调整数组的大小。 下面是一个简短的刷新:
通常的解决方案是将数组的大小增加一半
既然您知道了如何调整int数组的大小,那么调整Long数组的大小就很容易了
# 3 楼答案
您可以使用ArrayList在循环中尝试
in.nextLong()
,然后创建一个大小为“ArrayList”的数组(如果确实需要):