반응형
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
복사했습니다!