这个 紧凑的 方法 JAVA尼奥。长缓冲区 类用于压缩给定的缓冲区。
null
缓冲区当前位置与其限制之间的值将复制到缓冲区的开头。然后将缓冲器的位置设置为n+1,并将其限制设置为其容量。缓冲区的位置设置为复制的浮点数。
语法:
public abstract LongBuffer compact()
返回值: 此方法返回 新长缓冲区 与此缓冲区的内容相同。
例外情况: 这个方法抛出了 ReadOnlyBufferException ,如果此缓冲区是只读的。
下面的程序说明了 紧凑的 方法:
例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( "Compacted 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( "Updated 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
例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( "Position: " + ib.position()); // prLong the Limit of LongBuffer ib System.out.println( "limit: " + ib.limit()); // Creating a compacted LongBuffer of same ReadOnlyBuffer // using compact() method System.out.println( "Trying 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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END