【发布时间】:2015-02-18 07:41:58
【问题描述】:
我相信有很多类似的问题,如果这太常见了,对不起。我想了解哪个更好/更快/节省空间等以及为什么。
public static void(String[] main){
//case 1
String[] str_arr = new String[n];
method1(str_arr)
//case 2
String[] str_arr = new String[n];
String[] arr = new String[n];
for(int i=0; i < n; i++){
arr[i] = str_arr[i].split("some_char")[2];
}
method2(arr);
}
void method1(String[] str_arr){
String[] arr = new String[n];
for(int i=0; i < n; i++){
arr[i] = str_arr[i].split("aChar")[2];//assume there are 50 of aChar
}
// do_something with arr ;
}
void method2(String[] arr){
// do_something with arr ;
}
我应该更喜欢哪一个?
提前致谢。
【问题讨论】:
-
哪个更方便?
-
拥有一个只调用一个方法的方法是没有意义的。
-
@immibis,如果两者相等,我会选择
method1,因为main方法看起来更整洁。另外,我可能不需要创建String[] arr,我将创建一个String并对其进行处理。 -
@jurgemaister,我编辑了代码,没注意那行。
-
将您的
split()结果存储在一个新变量中,因为它适用于regexp,而regexp非常慢。
标签: java performance pass-by-value