Mientras hacemos problemas en varias plataformas de codificación en algunas preguntas terminamos con (TLE). En ese momento, incluso si usamos entrada rápida, a veces (TLE) permanece en Java. En ese momento, si usamos una salida rápida con una entrada rápida, puede reducir el tiempo necesario. La salida rápida generalmente se usa cuando tenemos que imprimir numerosos elementos, lo que se muestra más adelante y se analiza a continuación como método 2
Métodos:
- Sin usar salida rápida (Naive)
- Uso de salida rápida (óptima)
Método 1: sin usar salida rápida (método estándar)
System.out.println() se usa para imprimir un argumento que se le pasa. Se puede dividir en tres partes.
- Sistema: Es una clase final definida en el paquete java.lang .
- out: es un campo miembro estático de la clase System y es de tipo PrintStream
- println(): Es un método de la clase PrintStream. println imprime el argumento pasado a la consola estándar y una nueva línea.
Implementación: Programa en el que estamos imprimiendo el valor de 0 a 10^5
Ejemplo
Java
// Java Program to Print VeryLarge Bunch of Numbers // without using fast output concept // Importing all input output classes /** * @author Akhil */ 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); } }
Salida: se imprimen 10000 números del 0 al 9999 y este programa tarda 0,88 segundos en ejecutarse
Método 2: uso de salida rápida (óptima)
La clase PrintWriter es la implementación de la clase Writer . Se prefiere usar PrintWriter que usar System.out.println cuando tenemos que imprimir muchos elementos, ya que PrintWriter es más rápido que el otro para imprimir datos en la consola.
La variable System.out hace referencia a un objeto de tipo PrintStream que envuelve un BufferedOutputStream. Cuando llama a uno de los métodos write() en PrintStream, internamente vacía el búfer del BufferedOutputStream subyacente. No sucede con PrintWriter. Tenemos que hacerlo nosotros mismos.
Implementación:
Ejemplo
Java
// Java Program to Print VeryLarge Bunch of Numbers // Importing input output classes /** * @author Akhil */ import java.io.*; // Main class class GFG { // Main driver method public static void main(String[] args) { PrintWriter out=new PrintWriter(System.out); // Again iterating over very Big value for (int i = 0; i < 100000; i++) out.print(i + "\n"); // Flushing the content of the buffer to the // output stream using out.flush() methods out.flush(); } }
Producción:
Se genera la misma salida, es decir, se imprimen 10000 números del 0 al 9999 y este programa tarda 0,14 segundos en ejecutarse, lo que es un 84% más rápido que se genera una salida con respecto al tiempo comparando los dos ejemplos anteriores, como se ilustra.
Publicación traducida automáticamente
Artículo escrito por akhil3041999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA