반응형
Map<Integer, Double> failed = new HashMap<>();
HashMap을 정렬해야 할 일이 생겼습니다
value기준으로 오름차순 내림차순을 해야 하는데 이걸
for 문으로 반복해서 한다고 생각하니 좀 막막하더라구요?ㅎㅎ 코드도 워낙 길어질 것 같고요
그래서 좀 찾아보니 collection클래스를 이용해서 sort 해주는 기능이 있길래 바로 써봤습니다 ㅎㅎ
먼저 데이터에 들어가있는 값은 키가 Integer고 값이 Double인 데이터
{1=0.125, 2=0.42857142857142855, 3=0.5, 4=0.5, 6=1.0}
이러한 형태로 들어가 있습니다 이 value를 이용해 내림차순 하도록 하고자 합니다 ㅎㅎ
결론적으로 필요한건 key입니다 ㅎㅎ
그럼 내림차순 한다고 하면
{1=0.125, 2=0.42857142857142855, 3=0.5, 4=0.5, 6=1.0}
큰 값이 먼저 나오고 그 뒤로 점점 작은 값이 나와야겠지요 ㅎㅎ
그럼 그 key를 나열하면 6 3 4 2 1 순으로 나와야겠네요
그럴 때 사용하는 것이 Collection클래스의 sort메서드입니다 ㅎㅎ
List<Integer> list = new ArrayList<>(failed.keySet());
Collections.sort(list, (o1, o2) -> Double.compare( failed.get(o2), failed.get(o1) ) );
이러한 형태로 받아서 사용하시면 되겠습니다 ㅎㅎ 일단 list를 생성하는데
key를 셋팅 해주고 그 안에서 sort 메서드를 사용하여 비교 후 다시 적립합니다 ㅎㅎ
반응형
'Developer > Java' 카테고리의 다른 글
[java]필수 개념 (0) | 2022.09.13 |
---|---|
[java]Object클래스 (0) | 2022.09.08 |
[java]equals (0) | 2022.08.26 |
[java] 제네릭 (0) | 2022.08.25 |
[java]컬렉션즈 프레임워크 (0) | 2022.08.22 |