Java的快速输出
在一些问题中,在各种编码平台上做题时,我们最终得到了 (TLE)。在那个时候,即使我们使用快速输入,有时(TLE)也会保留在Java。那时如果我们使用快速输出和快速输入可以减少所花费的时间。当我们必须打印大量项目时通常使用快速输出,稍后将显示并在下面讨论为方法 2
方法:
- 不使用快速输出(天真)
- 使用快速输出(最佳)
方法 1:不使用快速输出(标准方法)
System.out.println()用于打印传递给它的参数。它可以分为三个部分
- System:它是在Java.lang 包中定义的最终类。
- out:它是 System 类的静态成员字段,类型为 PrintStream
- println():它是 PrintStream 类的一个方法。 println打印传递给标准控制台的参数和换行符。
实现:我们在其中打印从 0 到 10^5 的值的程序
例子
Java
// Java Program to Print VeryLarge Bunch of Numbers
// without using fast output concept
// Importin all input output classes
import java.io.*;
// Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Iterating over very large value
for (int i = 0; i < 100000; i++)
// Print all the elements of an array
// till the condition violates
System.out.println(i);
}
}
Java
// Java Program to Print VeryLarge Bunch of Numbers
// Importing input output classes
import java.io.*;
// Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Again iterating oover very Big value
for (int i = 0; i < 100000; i++)
// Print all the elements from the output stream
out.print(i + "\n");
// Flushing the content of the buffer to the
// output stream using out.flush() methods
out.flush();
}
}
输出:打印 0 到 9999 之间的 10000 个数字,该程序执行时间为 0.88 秒
方法 2:使用快速输出(最佳)
PrintWriter 类是 Writer 类的实现。当我们必须打印大量项目时,使用 PrintWriter 比使用 System.out.println 是首选,因为 PrintWriter 比其他更快地将数据打印到控制台。
System.out 变量引用了 PrintStream 类型的对象,该对象包装了 BufferedOutputStream。当您在 PrintStream 上调用write()方法之一时,它会在内部刷新底层 BufferedOutputStream 的缓冲区。 PrintWriter 不会发生这种情况。我们必须自己做。
执行:
例子
Java
// Java Program to Print VeryLarge Bunch of Numbers
// Importing input output classes
import java.io.*;
// Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Again iterating oover very Big value
for (int i = 0; i < 100000; i++)
// Print all the elements from the output stream
out.print(i + "\n");
// Flushing the content of the buffer to the
// output stream using out.flush() methods
out.flush();
}
}
输出:
生成相同的输出,即打印从 0 到 9999 的 10000 个数字,该程序执行时间为 0.14 秒,与所示的上述两个示例相比,生成的输出在时间方面快了 84%。