So I want to sort this numbers in list from smallest to biggest. In compare method it look like it is sorting desceding at first, but after the compare method is done with sorting, list is ascended sorted as I was expecting.
Main:
public class Main {
public static void main(String[] main){
Integer[] numbers = {3,2,6,1};
List<Integer> list = Arrays.asList(numbers);
Collections.sort(list,new SortNumbers());
System.out.println(list);
}
}
SortNumbers class:
import java.util.Comparator;
public class SortNumbers implements Comparator<Integer> {
@Override
public int compare(Integer i1, Integer i2) {
if(i1 > i2){
System.out.println(i1 + " " + i2 + " -> returns 1");
return 1;
}else{
System.out.println(i1 + " " + i2 + " -> returns -1");
return -1;
}
}
}
Output:
2 3 -> returns -1
6 2 -> returns 1
6 3 -> returns 1
1 3 -> returns -1
1 2 -> returns -1
[1, 2, 3, 6]
And also I dont understand why was method comparing 1 and 3 because they are never next to each other.