Close

Java Collections - Comparator.thenComparingLong() Examples

Java Collections Java Java API 


Interface:

java.util.Comparator

java.util.ComparatorComparatorLogicBig

Method:

default Comparator<T> thenComparingLong(ToLongFunction<? super T> keyExtractor)

This default method returns a comparator chained with this comparator. The returned comparator uses the specified function to extract the Comparable long sort key.


Examples


package com.logicbig.example.comparator;

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class ThenComparingLongExample {

public static void main(String... args) {
List<Record> list = createExampleRecords();
System.out.printf("before sort: %s%n", list);
Collections.sort(list, Comparator.comparing(Record::getDesc).thenComparingLong(Record::getId));
System.out.printf("after sort: %s%n", list);
}

private static List<Record> createExampleRecords() {
return Arrays.asList(
new Record(42000, "record3"),
new Record(21000, "record1"),
new Record(39000, "record2"),
new Record(10000, "record1"),
new Record(30000, "record3")
);
}

private static class Record {
private long id;
private String desc;

public Record(long id, String desc) {
this.id = id;
this.desc = desc;
}

public long getId() {
return id;
}

public String getDesc() {
return desc;
}

@Override
public String toString() {
return desc + " - " + id;
}
}
}

Output

before sort: [record3 - 42000, record1 - 21000, record2 - 39000, record1 - 10000, record3 - 30000]
after sort: [record1 - 10000, record1 - 21000, record2 - 39000, record3 - 30000, record3 - 42000]




See Also