마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

hashmap정렬 질문입니다.

0 추천
public static void main(String[] args) {
		// TODO Auto-generated method stub
		int korean=80, mathmatics=30, society=67, english=90, history=56 ,science=77, art=80, training=46;
		
		int i,j,k;
		TreeMap<String,Integer > map = new TreeMap<String,Integer >();
		int engineer = (mathmatics + science+ society + english)/4;
		int munkwa = (korean + english + society + history)/4;
		int talent = (korean + training + art + english)/4;


		map.put("angi", engineer);
		map.put("cun",munkwa );
		map.put("bal",talent);
		
		Iterator<String> it = map.descendingKeySet().iterator(); 
		while (it.hasNext())
		{
		    String key = it.next();
		    System.out.println(key + "\t" + map.get(key));
		}
		Collection cols = map.values(); 

		List temps = new ArrayList(cols); 
		Collections.sort(temps, Collections.reverseOrder()); 
		
		if (temps != null) { 
			for (i = 0, j = temps.size() ; i < j ; i++) { 

			System.out.println(i + "번째 값은 : " + (Integer)temps.get(i)+"키값은"); 
			} 
		}
		Set set = map.keySet();
		Object o[] = set.toArray();
		System.out.println("key: "+o[0]+" value: "+ map.get(o[0]));
		System.out.println("key: "+o[1]+" value: "+ map.get(o[1]));
		System.out.println("key: "+o[2]+" value: "+ map.get(o[2]));
		
	}

결과화면

 

cun 73
bal 74
angi 66
 
0번째 값은 : 74키값은
1번째 값은 : 73키값은
2번째 값은 : 66키값은
 
key: angi value: 66
key: bal value: 74
key: cun value: 73
'
 
이렇게 나옵니다. 제가 원하는건 내림차순 정렬 후 그 키값도 같이 불러오는건데
treemap은 키값정렬밖에 안된다고 하더라구요. 그럼 그냥 배열을 써야되는데 그럼 키값을 사용하지 못하게 됩니다.
 
제가 원하는 건
0번째 값은 : 74키값은 bal
1번째 값은 : 73키값은 cun
2번째 값은 : 66키값은 angi
 
이렇게 키값도 가져오게 하고 싶습니다. 그래서 그 키값에 따라 이미지 뷰에 이미지를 보여주게 하려고 하거든요.
 
아님 그냥 temps list를 가져다 쓰는 방법도 있나요? list는 키값을 못 가져오는거 같아서요
 
브루스웨인 (8,580 포인트) 님이 2013년 8월 22일 질문

1개의 답변

0 추천
 
채택된 답변
원조안드로이드 (58,190 포인트) 님이 2013년 8월 22일 답변
브루스웨인님이 2013년 8월 22일 채택됨
...