做了些POJ的题目下来,我发现使用BufferReader会比Scanner的速度快很多!
不仅仅是单行数据比较多的情况,而且就算是多行,每行只有一条数据时也是这样!
虽然使用readLine()方法,经常需要Integer.parseInt()方法,但是只是写起来比较麻烦,速度会快上很多。
比如POJ3627这道题,我特地比较了一下:
使用Scanner:内存 4988K 耗时 2266MS
使用BufferReader:内存 2772K 耗时 1360MS
竟然差了将近2倍之多!!
做过题目的都知道,2倍是什么概念,这还是每行一条数据的情况,如果一行很多数据,那么使用BufferReader会更快!
所以:尽量使用BufferReader吧。
另外:所有程序尽量写到main方法里面,变量尽量在main方法里面定义。。。虽然难看点,但是速度会有所提高。