📜  Java的快速输出

📅  最后修改于: 2022-05-13 01:55:29.354000             🧑  作者: Mango

Java的快速输出

在一些问题中,在各种编码平台上做题时,我们最终得到了 (TLE)。在那个时候,即使我们使用快速输入,有时(TLE)也会保留在Java。那时如果我们使用快速输出和快速输入可以减少所花费的时间。当我们必须打印大量项目时通常使用快速输出,稍后将显示并在下面讨论为方法 2

方法:

  1. 不使用快速输出(天真)
  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%。