我用 Java 编写了一个程序,使用 aScanner
从每行中获取由空格分隔的两个元素,以将其放入存储在ArrayList
. 它工作得很好,但是当涉及到 10000 行的输入时,它会变得很长。我阅读了一些主题和网站(例如this),告诉BufferedReader
我会比Scanner
但我在尝试时没有看到任何改进。
以下是我迄今为止用来解析输入的每一行的行:
String charsetName = "UTF-8";
Scanner scanner = new Scanner(new BufferedInputStream(System.in), charsetName);
然后我在调用的行数期间运行了一个循环:
String[] mid = scanner.nextLine().split(" ");
所以我试图用以下方式替换Scanner
:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] base = reader.readLine().split(" ");
它没有改变任何东西(两种情况下 12000 行 8 秒)
我是否朝着正确的方向前进以使程序更快地运行?还是问题来自使用循环遍历每一行?