El método compact() de java.nio.LongBuffer Class se usa para compactar el búfer dado.
Los valores entre la posición actual del búfer y su límite se copian al principio del búfer. Luego, la posición del búfer se establece en n+1 y su límite se establece en su capacidad. La posición del búfer se establece en el número de flotantes copiados.
Sintaxis:
public abstract LongBuffer compact()
Valor devuelto: este método devuelve el nuevo LongBuffer con el mismo contenido que el de este búfer.
Excepción: este método lanza ReadOnlyBufferException , si este búfer es de solo lectura.
El siguiente programa ilustra el método compact() :
Ejemplos 1:
// Java program to demonstrate // compact() method import java.nio.*; import java.util.*; public class GFG { public static void main(String[] args) { // Declaring the capacity of the LongBuffer int capacity = 10; // Creating the LongBuffer // creating object of Longbuffer // and allocating size capacity LongBuffer ib = LongBuffer.allocate(capacity); // putting the value in Longbuffer ib.put(8); ib.put(9); ib.put(9); // prLong the LongBuffer System.out.println("Original LongBuffer: " + Arrays.toString(ib.array())); System.out.println("Position: " + ib.position()); System.out.println("limit: " + ib.limit()); // Creating a compacted LongBuffer of same LongBuffer // using compact() method LongBuffer LongBuffer = ib.compact(); // prLong the LongBuffer System.out.println("\nCompacted LongBuffer: " + Arrays.toString(LongBuffer.array())); System.out.println("Position: " + LongBuffer.position()); System.out.println("limit: " + LongBuffer.limit()); // putting the value in compacted Longbuffer LongBuffer.put(9); // prLong the LongBuffer System.out.println("\nUpdated Compacted LongBuffer: " + Arrays.toString(LongBuffer.array())); System.out.println("Position: " + LongBuffer.position()); System.out.println("limit: " + LongBuffer.limit()); } }
Original LongBuffer: [8, 9, 9, 0, 0, 0, 0, 0, 0, 0] Position: 3 limit: 10 Compacted LongBuffer: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] Position: 7 limit: 10 Updated Compacted LongBuffer: [0, 0, 0, 0, 0, 0, 0, 9, 0, 0] Position: 8 limit: 10
Ejemplos 2:
// Java program to demonstrate // compact() method import java.nio.*; import java.util.*; public class GFG { public static void main(String[] args) { // Declaring the capacity of the LongBuffer int capacity = 10; // Creating the LongBuffer try { // creating object of LongBuffer // and allocating size capacity LongBuffer ib = LongBuffer.allocate(capacity); // putting the value in Longbuffer ib.put(8); ib.put(9); ib.put(9); ib.rewind(); // Creating a read-only copy of LongBuffer // using asReadOnlyBuffer() method LongBuffer ib1 = ib.asReadOnlyBuffer(); // prLong the ReadOnlyBuffer System.out.print("ReadOnlyBuffer LongBuffer: "); while (ib1.hasRemaining()) System.out.print(ib1.get() + ", "); System.out.println(""); // prLong the Position of LongBuffer ib System.out.println("\nPosition: " + ib.position()); // prLong the Limit of LongBuffer ib System.out.println("\nlimit: " + ib.limit()); // Creating a compacted LongBuffer of same ReadOnlyBuffer // using compact() method System.out.println("\nTrying to compact the ReadOnlyBuffer ib1"); LongBuffer LongBuffer = ib1.compact(); } catch (IllegalArgumentException e) { System.out.println("Exception throws " + e); } catch (ReadOnlyBufferException e) { System.out.println("Exception throws " + e); } } }
ReadOnlyBuffer LongBuffer: 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, Position: 0 limit: 10 Trying to compact the ReadOnlyBuffer ib1 Exception throws java.nio.ReadOnlyBufferException
Publicación traducida automáticamente
Artículo escrito por pawan_asipu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA