Sorting and Comparing Java Collections: A Deep Dive into Comparator and Comparable
The Comparable Interface
Comparable is a core Java interface used to define the natural ordering of objects of a custom class. Any class that implements this interface must override the compareTo() method, which encodes the comparison logic between the current object and another instance of the same class.
Usage Example
Classes that implement C ...
Posted on Fri, 18 Sep 2026 16:19:10 +0000 by manamino
Implementing Custom Sorting Strategies in Java Collections
Implementing the Comparable interface establishes a natural ordering for a class. When a domain object overrides compareTo, standard collection utilities can sort instances without external configuration.
import java.util.ArrayList;
import java.util.List;
public class NaturalOrderingDemo {
public static void main(String[] args) {
L ...
Posted on Thu, 17 Sep 2026 16:32:48 +0000 by Eiolon
Implementing Object Comparison in Java
Primitive data types in Java can be directly compared using relational operators.
int valueA = 5, valueB = 10;
System.out.println(valueA > valueB); // false
System.out.println(valueA == valueB); // false
System.out.println(valueA < valueB); // true
char charA = 'm', charB = 'z';
// Compares underlying Unicode values
System.out.println(ch ...
Posted on Fri, 21 Aug 2026 16:37:47 +0000 by raimis100
Heap Sorting and Comparator Usage
Heap Sorting
Given a unsorted array, heap sort transforms it into a descending sequence:
Convert the array into a max heap using heap insertion or heapify operations
Repeatedly swap the root element with the last position, reduce heap size, and re-adjust
Continue untill heap size reduces to zero
Heap Construction Methods
Forward Traversal wit ...
Posted on Sat, 06 Jun 2026 16:25:05 +0000 by will35010
Demystifying the Array.prototype.sort Comparator
While patching a legacy Beego dashboard I stumbled on a tiny sorting requirement that refused to cooeprate. The goal sounded trivial: given an array that mixes one-, two- and three-digit integers, keep the global ascending order but push every two-digit value to the tail.
const sample = [1, 8, 3, 11, 100, 15, 201];
// expected: [1, 3, 8, 100, 2 ...
Posted on Sun, 17 May 2026 08:30:11 +0000 by dolphinsnot