Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

java

What is the CharBuffer compareTo() method in Java?

Kainat Asif

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

java.nio.CharBuffer is a class that we can use to store a buffer of characters. The compareTo() method of the class java.nio.CharBuffer compares two buffers. Two buffers are compared by comparing their sequence of remaining elements lexicographically, without regard to the starting point of the buffers.

Note:

  • Two characters are compared the same way as the Char.compare() method. The only difference is that unlike Char.compare(), -0 and +0 are considered equal by the CompareBuffer.compareTo() method.

Declaration

The CharBuffer.compareTo() method can be declared as:

buff1.compareTo(buff2);
  • buff1: The first buffer, to be compared to buff2.
  • buff2: The second buffer, to be compared to buff1.

Return value

The CharBuffer.compareTo() method returns an integer such that:

  • The return value is a positive integer if buff1 is greater than buff2.
  • The return value is 0 if buff1 is equal to buff2.
  • The return value is a negative integer if buff1 is less than buff2.

Examples

Example 1

Consider the code snippet below, which demonstrates the use of the CharBuffer.compareTo() method.

import java.nio.*;
import java.util.*;
public class main {
public static void main(String[] args) {
int n1 = 5;
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()));
int foo = buff1.compareTo(buff2);
System.out.println("\nbuff1 compareTo to buff2: " + foo);
} catch (IllegalArgumentException e) {
System.out.println("Error!!! IllegalArgumentException");
} catch (ReadOnlyBufferException e) {
System.out.println("Error!!! ReadOnlyBufferException");
}
}
}

Explanation

  • A CharBuffer buff1 is declared in line 8. Two characters are written to buff1 in lines 9-10.
  • A CharBuffer buff2 is declared in line 13. Two characters are written to buff2 in lines 14-15.
  • The CharBuffer.compareTo() method is used in line 18 to see if buff1 and buff2 are equal. The CharBuffer.compareTo() method returns a positive integer, which means that buff1 is greater than buff2.

Example 2

Consider the code snippet below, which compares two equal buffers.

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('b');
buff2.put('c');
System.out.println("buff2: " + Arrays.toString(buff2.array()));
int foo = buff1.compareTo(buff2);
System.out.println("\nbuff1 compareTo to buff2: " + foo);
} catch (IllegalArgumentException e) {
System.out.println("Error!!! IllegalArgumentException");
} catch (ReadOnlyBufferException e) {
System.out.println("Error!!! ReadOnlyBufferException");
}
}
}

Explanation

  • A CharBuffer buff1 is declared in line 8. Two characters are written to buff1 in lines 9-10.
  • A CharBuffer buff2 is declared in line 13. Two characters are written to buff2 in lines 14-15.
  • The CharBuffer.compareTo() method is used in line 18 to see if buff1 and buff2 are equal. The CharBuffer.compareTo() method returns a positive integer, which means that buff1 is equal to buff2.

RELATED TAGS

java

CONTRIBUTOR

Kainat Asif
Copyright ©2022 Educative, Inc. All rights reserved

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring