gpt4 book ai didi

java - 为什么从输入读取时 Scanner 比 BufferedReader 慢?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:55:44 25 4
gpt4 key购买 nike

我了解 Scanner 有什么用,以及何时使用 Scanner 以及何时使用 BufferedReader。我读了一个不同的,但在一些类似的问题中 Scanner vs. BufferedReader

为什么当我从输入中读取时 Scanner 这么慢?我认为这与扫描仪中有一个小缓冲区有关,但在这里我迷路了。原始问题来自 Codechef ,但我对该解决方案不感兴趣。

这是一个给定输入的代码示例:输入:

  • 7 3
  • 1
  • 51
  • 966369
  • 7
  • 9
  • 999996
  • 1

代码

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
int numberOfLines = Integer.parseInt(s[0]);
int divideNumber = Integer.parseInt(s[1]);
int count = 0;

for (int i = 0; i < numberOfLines; i++) {
String number = br.readLine();
if (number.length() < 11) {
int num = Integer.parseInt(number);
if (num % divideNumber == 0) {
count++;
}
}
}
System.out.println(count);
}
}

如果我用扫描仪读取相同的代码,速度会很慢。

最佳答案

上层类/方法通常比下层类/方法慢。
同样,您可能会问为什么使用 正则表达式 进行搜索比使用
使用 String.indexOf() 搜索。其实我在这里看到过这样的问题。

你的类/方法越专业,它的性能就越好。
它确实例如只是 1 件简单的事情,但可以快速有效地完成。
更通用的类/方法例如10-20 种不同的东西,所以它们
更强大,但因此它们更慢。

我在这里笼统地说,我自己没有比较过ScannerBufferedReader

关于java - 为什么从输入读取时 Scanner 比 BufferedReader 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21797573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com