JAVA 꿀팁
HashMap Value값 BigInteger 내림차순 정렬하기
감._.자
2021. 12. 16. 18:19
728x90
반응형
Map.Entry값을 받아온 뒤 Collections.sort,Comparator 사용하여 정렬하면됨.
여기서 Comparator 함수의 return 값으로
o2.getValue().compareTo(o1.getValue())
를 작성하면 내림차순 정렬이 된다.
compareTo는 BigInteger의 메서드임!
참고: https://docs.microsoft.com/ko-kr/dotnet/api/system.numerics.biginteger.compareto?view=net-6.0
BigInteger1.compareTo(BigInteger2)
반환 값 | 설명 |
0보다 작음 | BigInteger1이 BigInteger2 보다 작다. |
0 | BigInteger1과 BigInteger2 값이 같다. |
0보다 큼 | BigInteger1이 BigInteger2 보다 크다. |
오름차순 정렬하고 싶은 경우에는 o1과 o2의 순서를 바꾸면 됨.
o1.getValue().compareTo(o2.getValue())
아래 코드에서 내림차순으로 정렬한 값은 list에 저장되게 했음.
import java.math.BigInteger;
import java.util.*;
import java.io.*;
import java.util.List;
public class Test {
static Map<Character, BigInteger> dic = new HashMap<Character, BigInteger>();
public static void main(String[] args) {
// Map.Entry 리스트 작성
List<Map.Entry<Character, BigInteger>> list = new LinkedList<>(dic.entrySet());
// 비교함수 Comparator를 사용하여 내림차순 정렬
Collections.sort(list, new Comparator<Map.Entry<Character, BigInteger>>() {
@Override
public int compare(Map.Entry<Character, BigInteger> o1, Map.Entry<Character, BigInteger> o2) {
// 내림차순 정렬
return o2.getValue().compareTo(o1.getValue());
}
});
}
}
728x90
반응형