将拆分字符串存储到数组中并在我的程序中使用此数组会更快,或者我可以在需要数组迭代时对字符串调用 .split() 方法?
String main = "1,2,3,4,5,6";
String[] array = main.split(",");
与
main.split(",");
每当我需要使用输入值时?
我意识到如果我将字符串存储在数组中,它将更具可读性。我只想知道 .split() 是否比使用数组需要更多的计算时间。由于拆分方法返回一个包含拆分字符串的数组。
一个简单的示例(?)循环来回答这个问题:
for (int i = main.length - 1; i >= 0; i--){}
与
for (int i = main.split(",") - 1; i >= 0; i--){}
这是一种权衡,就像编程中的大多数这样的事情一样。 如果只拆分一次并从那时起直接使用阵列,则可以节省处理时间,但会牺牲内存。 如果每次都拆分,则会以牺牲处理时间为代价来节省内存。
一个更省时,另一个更节省空间。
如您所见,split()
方法返回一个数组,因此在后台,每次通过main.split(",")
String 调用它以提取值时,都会迭代main
。因此,仅使用一次并使用结果会更快。
我宁愿拆分一次并保留令牌,而不管数组的大小如何。 如果生成的数组很大,则每次拆分的成本会更高。 如果它很小,则最终存储可能不会成为一个因素。
如果您担心大型阵列的存储,那么上次拆分也应该是一个问题。 要缓解这种情况,只需在完成后为数组分配 null,然后让垃圾回收器执行其操作。
如果我要迭代一个令牌数组,我可能会这样做。
for (String token : main.split(",")) {
// do some stuff.
}
创建一次数组。