Как отсортировать ArrayList с помощью Comparator в Java

По умолчанию элементы в ArrayList отображаются в том порядке, в котором они вставлены в список, но иногда необходимо просматривать эти элементы в порядке возрастания или убывания. В этом коде реализован метод Collections.sort() который сортирует a Arraylist в порядке возрастания и убывания.

Сортировать ArrayList в порядке возрастания

import java.util.ArrayList; 
import java.util.Collections;

public class Tri {

public static void main(String[] args) {
ArrayList unsorted = new ArrayList();
nonsort.add("01");
nonsort.add("0A");
unsorted.add("0B");
unsorted.add("ETX");
unsorted.add("00");
unsorted.add("0C");
nonsort.add("NUL");
unsorted.add("05");
unsorted.add("19");
unsorted.add("0001011");

System.out.println("Перед сортировкой");
for(int i=0; i < unsorted.size(); i++)
System.out.println(unsorted.get(i));

System.out.println("\nПосле сортировки");
Collections.sort(unsorted);
for(int i=0; i < unsorted.size(); i++)
System.out.println(unsorted.get(i));
}
}
Output:

Before tri
01
0A
0B
ETX
00
0C
NUL
05
19
0001011
< br />После сортировки
00
0001011
01
05
0A
0B
0C
19
ETX
NUL

Сортировка ArrayList в порядке убывания

Класс Collections имеет другой метод Collections.sort(Список< Т>, компаратор< Т>) который позволяет сортировать ArrayList в порядке возрастания и убывания. Эта функция использует компаратор объектов, который каждый раз сравнивает два объекта с помощью функции o1.compareTo(o2).

import java.util.ArrayList; 
import java.util.Collections;
import java.util.Comparator;

public class Tri {

public static void main(String[] args) {
ArrayList unsorted = new ArrayList();
unsorted.add("11000000");
unsorted.add("10101000");
unsorted.add("00000001");
unsorted.add("00001111");
nontrié.add("00001100");
unsorted.add("00001111");
unsorted.add("11111111");
nonsort.add("11111100");
unsorted.add("00000000");
unsorted.add("00000011");
unsorted.add("00001110");

System.out.println("Перед сортировкой");
for(int i=0; i < unsorted.size(); i++)
System.out.println(unsorted.get(i)+" ");

System.out.println("\nПосле сортировки");

Collections.sort(nonsort, new Comparator() {
@Override
public int compare(String s1, String s2)
{
/*s2 по сравнению с s1, чтобы порядок был по убыванию
return s2.compareTo(s1);
}
});
for(int i=0; i < unsorted.size(); i++)
System.out.println(unsorted.get(i)+" ");
}
}
Output:

before sort
11000000
10101000
00000001
00001111
00001100
00001111
11111111
11111100
00000000
00000011
00001110

After sort
11111111
11111100
11000000
10101000
00001111
00001111
00001110
00001100
00000011
00000001
00000000
References:
Американский стандартный код для обмена информацией
Documentation Collections.sort
stackOverFlow:Как отсортировать ArrayList в java