BASE-4535: Update examples for overriding compareTo
This commit is contained in:
parent
268fe2dfe6
commit
51e2fe20b1
@ -10,9 +10,13 @@ public class FootballPlayer implements Comparable<FootballPlayer> {
|
|||||||
this.goalsScored = goalsScored;
|
this.goalsScored = goalsScored;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(FootballPlayer anotherPlayer) {
|
public int compareTo(FootballPlayer anotherPlayer) {
|
||||||
return this.goalsScored - anotherPlayer.goalsScored;
|
return Integer.compare(this.goalsScored, anotherPlayer.goalsScored);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2,6 +2,10 @@ package com.baeldung.compareto;
|
|||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
@ -11,7 +15,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
public class FootballPlayerUnitTest {
|
public class FootballPlayerUnitTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenInconsistentCompareToAndEqualsImpl_whenUsingSortedSet_thenElementsAreNotAdded() {
|
public void givenInconsistentCompareToAndEqualsImpl_whenUsingSortedSet_thenSomeElementsAreNotAdded() {
|
||||||
FootballPlayer messi = new FootballPlayer("Messi", 800);
|
FootballPlayer messi = new FootballPlayer("Messi", 800);
|
||||||
FootballPlayer ronaldo = new FootballPlayer("Ronaldo", 800);
|
FootballPlayer ronaldo = new FootballPlayer("Ronaldo", 800);
|
||||||
|
|
||||||
@ -23,11 +27,24 @@ public class FootballPlayerUnitTest {
|
|||||||
assertThat(set).doesNotContain(ronaldo);
|
assertThat(set).doesNotContain(ronaldo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenCompareToImpl_whenUsingCustomComparator_thenComparatorLogicIsApplied() {
|
||||||
|
FootballPlayer ronaldo = new FootballPlayer("Ronaldo", 900);
|
||||||
|
FootballPlayer messi = new FootballPlayer("Messi", 800);
|
||||||
|
FootballPlayer modric = new FootballPlayer("Modric", 100);
|
||||||
|
|
||||||
|
List<FootballPlayer> players = Arrays.asList(ronaldo, messi, modric);
|
||||||
|
Comparator<FootballPlayer> nameComparator = Comparator.comparing(FootballPlayer::getName);
|
||||||
|
Collections.sort(players, nameComparator);
|
||||||
|
|
||||||
|
assertThat(players).containsExactly(messi, modric, ronaldo);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenCompareToImpl_whenSavingElementsInTreeMap_thenKeysAreSortedUsingCompareTo() {
|
public void givenCompareToImpl_whenSavingElementsInTreeMap_thenKeysAreSortedUsingCompareTo() {
|
||||||
FootballPlayer ronaldo = new FootballPlayer("Ronaldo", 900);
|
FootballPlayer ronaldo = new FootballPlayer("Ronaldo", 900);
|
||||||
FootballPlayer messi = new FootballPlayer("Messi", 800);
|
FootballPlayer messi = new FootballPlayer("Messi", 800);
|
||||||
FootballPlayer modric = new FootballPlayer("modric", 100);
|
FootballPlayer modric = new FootballPlayer("Modric", 100);
|
||||||
|
|
||||||
Map<FootballPlayer, String> players = new TreeMap<>();
|
Map<FootballPlayer, String> players = new TreeMap<>();
|
||||||
players.put(ronaldo, "forward");
|
players.put(ronaldo, "forward");
|
||||||
|
@ -2,13 +2,7 @@ package com.baeldung.compareto;
|
|||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.TreeSet;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
||||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||||
|
|
||||||
public class HandballPlayerUnitTest {
|
public class HandballPlayerUnitTest {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user