java.nio.CharBuffer
is a class that we can use to store a buffer of characters. The equals()
method of the class java.nio.CharBuffer
checks if two buffers are equal or not.
Two buffers are equal if:
Note:
- Unlike
Char.equals(Object)
, -0 and +0 are considered equal by theCharBuffer.equals()
method.- Two characters f1 and f2 are considered equal by
CharBuffer.equals()
method if (f1 == f2) || (Char.isNaN(f1) && Char.isNaN(f2)).
The CharBuffer.equals()
method can be declared as follows:
buff1.equals(buff2);
buff1
: The first buffer checked to see if it is equal to buff2
.buff2
: The second buffer checked to see if it is equal to buff1
.The CharBuffer.equals()
method returns a boolean
such that:
true
if the two buffers buff1
and buff2
are equal.false
if the buffers buff1
and buff2
are not equal
.Consider the code snippet below, which demonstrates the use of the CharBuffer.equals()
method.
import java.nio.*;import java.util.*;public class main {public static void main(String[] args) {int n1 = 4;int n2 = 4;try {CharBuffer buff1 = CharBuffer.allocate(n1);buff1.put('a');buff1.put('c');System.out.println("buff1: " + Arrays.toString(buff1.array()));CharBuffer buff2 = CharBuffer.allocate(n2);buff2.put('a');buff2.put('c');System.out.println("buff2: " + Arrays.toString(buff2.array()));boolean foo = buff1.equals(buff2);System.out.println("\nbuff1 equal to buff2: " + foo);} catch (IllegalArgumentException e) {System.out.println("Error!!! IllegalArgumentException");} catch (ReadOnlyBufferException e) {System.out.println("Error!!! ReadOnlyBufferException");}}}
CharBuffer
buff1
is declared in line 8. Two characters are written to buff1
in lines 9-10.CharBuffer
buff2
is declared in line 13. Two characters are written to buff2
in lines 14-15.CharBuffer.equals()
method is used in line 18 to check if the buffers buff1
and buff2
are equal. TheCharBuffer.equals()
method returns true
because buff1
and buff2
are equal.Consider the code snippet below, which compares two unequal buffers.
import java.nio.*;import java.util.*;public class main {public static void main(String[] args) {int n1 = 4;int n2 = 5;try {CharBuffer buff1 = CharBuffer.allocate(n1);buff1.put('a');buff1.put('c');System.out.println("buff1: " + Arrays.toString(buff1.array()));CharBuffer buff2 = CharBuffer.allocate(n2);buff2.put('a');buff2.put('c');System.out.println("buff2: " + Arrays.toString(buff2.array()));boolean foo = buff1.equals(buff2);System.out.println("\nbuff1 equal to buff2: " + foo);} catch (IllegalArgumentException e) {System.out.println("Error!!! IllegalArgumentException");} catch (ReadOnlyBufferException e) {System.out.println("Error!!! ReadOnlyBufferException");}}}
CharBuffer
buff1
is declared in line 8. Two characters are written to buff1
in lines 9-10.CharBuffer
buff2
is declared in line 13. Two characters are written to buff2
in lines 14-15.CharBuffer.equals()
method is used in line 18 to check if the buffers buff1
and buff2
are equal. TheCharBuffer.equals()
method returns false
because the number of elements of buff1
is 4 and the number of elements of buff2
is 5, which is not equal.