Java 有没有更好的方法将字符串数组转换为整数数组?

Java 有没有更好的方法将字符串数组转换为整数数组?,java,arrays,io,Java,Arrays,Io,每次需要整数数组时,我都使用以下代码: BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] str = br.readLine().split(" "); int[] a =new int[str.length]; int j = 0; for(String i : str) a[j++]=Integer.parseInt(i); 我使用BufferedReader而不是Sca

每次需要整数数组时,我都使用以下代码:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
int[] a =new int[str.length];
int j = 0;
for(String i : str)
  a[j++]=Integer.parseInt(i);
我使用BufferedReader而不是Scanner来减少输入过程中的时间复杂性。然而,当阵列大小相对较大(>100)时,我想知道这种方法是否比扫描仪更有效。在这种情况下,有没有更好的方法将字符串数组转换为整数数组

根据我的经验,比调用
split
性能更好。之后,我以与您相同的方式将令牌转换为int。我认为这是在一行上输入一系列整数的最佳方法。这里是一个讨论和衡量不同方法的平台


我还想指出,这是大多数编程竞争对手所使用的方法,如legend Petr Mitrichev,因此我相信这是你能得到的最好的方法

java 8非常简单,只有一行:

int[] a = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();

“降低时间复杂度”是什么意思
Scanner
将具有相同的渐近性和竞争常数因子。在计算程序的时间复杂度时,我们主要依赖于循环的数量,并且几乎将所有内容都视为常数。I/O方法有很大的不同。尝试扫描器问题,然后使用BufferedReader,检查它们的执行时间。