Java에서 Comparator를 사용하여 ArrayList를 정렬하는 방법

기본적으로 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");
정렬되지 않은.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(정렬되지 않음);
for(int i=0; i < unsorted.size(); i++)
System.out.println(unsorted.get(i));
}
}
출력:

tri
01
0A
0B
ETX
00
0C
NUL
05
19
0001011
< br />정렬 후
00
0001011
01
05
0A
0B
0C
19
ETX
NUL

Sort ArrayList in descending order

Collections 클래스에는 또 다른 메서드가 있습니다. Collections.sort(목록< T>, 비교기< 티>) 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();
정렬되지 않은.add("11000000");
정렬되지 않은.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 for s1 to order are descending
return s2.compareTo(s1);
}
});
for(int i=0; i < unsorted.size(); i++)
System.out.println(unsorted.get(i)+" ");
}
}
출력:

Before Sort
11000000
10101000
00000001
00001111
00001100
00001111
11111111
11111100
00000000
00000011
00001110

정렬 후
11111111
11111100
11000000
10101000
00001111
00001111
00001110
00001100
00000011
00000001
00000000
참조:
American Standard Code for Information Interchange
Documentation Collections.sort
stackOverFlow:java