Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么bufferedReader在java中比Scanner类更有效?_Java_Java.util.scanner_Bufferedreader_Binary Search_Bufferedwriter - Fatal编程技术网

为什么bufferedReader在java中比Scanner类更有效?

为什么bufferedReader在java中比Scanner类更有效?,java,java.util.scanner,bufferedreader,binary-search,bufferedwriter,Java,Java.util.scanner,Bufferedreader,Binary Search,Bufferedwriter,看看下面的问题,不管您为此编写解决方案的效率有多高,使用Scanner类都会导致超时 问题: 您已经给出了一个数组,其中包含元素。现在,对于给定的查询,您已经提供了一个整数,您必须找到最小和,它是数组中所有元素的总和,这些元素的值小于查询中提供的给定整数 输入格式: 第一行:表示数组元素数量的整数。 第二行:表示数组元素的空格分隔整数。 第三行:表示查询数的整数。 对于每个查询:新行包含一个整数 输出格式: 对于每个查询,在新行中打印一个最小和的整数 只需使用缓冲读取器而不是扫描仪类和缓冲写入器

看看下面的问题,不管您为此编写解决方案的效率有多高,使用Scanner类都会导致超时

问题:

您已经给出了一个数组,其中包含元素。现在,对于给定的查询,您已经提供了一个整数,您必须找到最小和,它是数组中所有元素的总和,这些元素的值小于查询中提供的给定整数

输入格式:

第一行:表示数组元素数量的整数。 第二行:表示数组元素的空格分隔整数。 第三行:表示查询数的整数。 对于每个查询:新行包含一个整数

输出格式: 对于每个查询,在新行中打印一个最小和的整数


只需使用
缓冲读取器
而不是
扫描仪类
缓冲写入器
而不是
System.out.print
,即可使此代码的速度提高一倍,且所有测试用例都能轻松通过,这背后的原因是什么?

BufferedReader比Scanner快得多,因为它的缓冲内存比Scanner大。你可以看出两者之间的区别