【发布时间】:2020-05-16 03:25:04
【问题描述】:
我是 Java 新手,不知道哪个更好
所以我收到了一个非常奇怪的作业问题,要求我们将 csv 拆分为二维数组,但它们是 2 条规则
1.你不能使用 ArrayList
2.你不能导入file.io以外的其他java类
所以这使得它非常具有挑战性,因为我们还不能确定数组的大小。所以当我readline时,我决定先把它存储在一个字符串中
完成所有readline后,才处理“,”
所以我想知道,是否将字符串重新复制到字符串以添加文本会对性能产生更大影响,或者将先前的数组重新复制到新数组效率低下?
这只是 csv 的外观示例
1、2、3
4、5、6
stringRecopy &= reader.readLine()
对
int[][] arrayRecopy = (copy previous array with new reader.readLine().split(",") here)
【问题讨论】:
-
"do recopy a string to a string to add text have more performance impact",你可以自己尝试,如果差异可以忽略不计,在1000次左右迭代
-
@Martheen - 对了一半。问题是,如果你手工编写一个微基准,很容易得到误导性的结果。 OP 也需要阅读此内容:How do I write a correct benchmark in Java?
-
如果非要瞎猜的话,我说copy previous array to a new array,因为有新数据会更慢,你怎么看?
-
我认为它比这更复杂。 (想一想。这大致就是
ArrayList所做的!) -
file.io是什么意思?没有该名称的包或类。除此之外,它看起来像是一个很容易躲避的规则。您始终可以通过完全限定名称使用类,而无需import语句。
标签: java arrays performance