FloatBuffer compact() method in Java With Examples
Last Updated :
06 Dec, 2018
The
compact() method of
java.nio.FloatBuffer Class is used to compact the given buffer.
The values between the buffer's current position and its limit are copied to the beginning of the buffer. The buffer's position is then set to n+1 and its limit is set to its capacity. The buffer's position is set to the number of floats copied.
Syntax :
public abstract FloatBuffer compact()
Return Value: This method returns the
new FloatBuffer with the same content as that of this buffer.
Exception: This method throws the
ReadOnlyBufferException, If this buffer is read-only.
Below program illustrates the
compact() method:
Examples 1:
Java
// 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 FloatBuffer
int capacity = 10;
// Creating the FloatBuffer
// creating object of floatbuffer
// and allocating size capacity
FloatBuffer fb = FloatBuffer.allocate(capacity);
// putting the value in floatbuffer
fb.put(8.56F);
fb.put(9.61F);
fb.put(9.61F);
// print the FloatBuffer
System.out.println("Original FloatBuffer: "
+ Arrays.toString(fb.array()));
System.out.println("Position: " + fb.position());
System.out.println("limit: " + fb.limit());
// Creating a compacted FloatBuffer of same FloatBuffer
// using compact() method
FloatBuffer floatBuffer = fb.compact();
// print the FloatBuffer
System.out.println("\nCompacted FloatBuffer: "
+ Arrays.toString(floatBuffer.array()));
System.out.println("Position: " + floatBuffer.position());
System.out.println("limit: " + floatBuffer.limit());
// putting the value in compacted floatbuffer
floatBuffer.put(9.61F);
// print the FloatBuffer
System.out.println("\nUpdated Compacted FloatBuffer: "
+ Arrays.toString(floatBuffer.array()));
System.out.println("Position: " + floatBuffer.position());
System.out.println("limit: " + floatBuffer.limit());
}
}
Output:
Original FloatBuffer: [8.56, 9.61, 9.61, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Position: 3
limit: 10
Compacted FloatBuffer: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Position: 7
limit: 10
Updated Compacted FloatBuffer: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.61, 0.0, 0.0]
Position: 8
limit: 10
Examples 2:
Java
// 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 FloatBuffer
int capacity = 10;
// Creating the FloatBuffer
try {
// creating object of FloatBuffer
// and allocating size capacity
FloatBuffer fb = FloatBuffer.allocate(capacity);
// putting the value in floatbuffer
fb.put(8.56F);
fb.put(9.61F);
fb.put(9.61F);
fb.rewind();
// Creating a read-only copy of FloatBuffer
// using asReadOnlyBuffer() method
FloatBuffer fb1 = fb.asReadOnlyBuffer();
// print the ReadOnlyBuffer
System.out.print("ReadOnlyBuffer FloatBuffer: ");
while (fb1.hasRemaining())
System.out.print(fb1.get() + ", ");
System.out.println("");
// print the Position of FloatBuffer fb
System.out.println("\nPosition: " + fb.position());
// print the Limit of FloatBuffer fb
System.out.println("\nlimit: " + fb.limit());
// Creating a compacted FloatBuffer of same ReadOnlyBuffer
// using compact() method
System.out.println("\nTrying to compact the ReadOnlyBuffer fb1");
FloatBuffer floatBuffer = fb1.compact();
}
catch (IllegalArgumentException e) {
System.out.println("Exception throws " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws " + e);
}
}
}
Output:
ReadOnlyBuffer FloatBuffer: 8.56, 9.61, 9.61, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
Position: 0
limit: 10
Trying to compact the ReadOnlyBuffer fb1
Exception throws java.nio.ReadOnlyBufferException
Similar Reads
FloatBuffer compareTo() method in Java With Examples The compareTo() method of java.nio.FloatBuffer class is used to compare one buffer to another. Two float buffers are compared by comparing their sequences of remaining elements lexicographically, without regard to the starting position of each sequence within its corresponding buffer. Pairs of float
4 min read
FloatBuffer allocate() method in Java With Examples The allocate() method of java.nio.FloatBuffer Class is used to allocate a new float buffer next to the existing buffer. The new buffer's position will be zero. Its limit will be its capacity. Its mark will be undefined. And each of its elements will be initialized to zero. It will have a backing arr
2 min read
FloatBuffer duplicate() method in Java with Examples The duplicate() method of java.nio.FloatBuffer Class is used to Create a new float buffer that shares the given buffer's content. The content of the new buffer will be that of this buffer. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position,
3 min read
FloatBuffer equals() method in Java with Examples The equals() method of java.nio.FloatBuffer Class is used to check whether or not the given buffer is equal to another object. Two float buffers are equal if, and only if, They have the same element type, They have the same number of remaining elements, and The two sequences of remaining elements, c
4 min read
FloatBuffer get() methods in Java with Examples get() The get() method of java.nio.FloatBuffer Class is used to reads the float at the given buffer's current position, and then increments the position. Syntax : public abstract float get() Return Value: This method returns the float value at the buffer's current position. Throws: This method throw
5 min read
FloatBuffer put() methods in Java with Examples put(float f) The put(float f) method of java.nio.FloatBuffer Class is used to write the given float into the newly created float buffer at the current position, and then increments the position. Syntax : public abstract FloatBuffer put(float f) Parameters: This method takes the float value f as a pa
6 min read