android 에서 맵 을 옮 겨 다 니 는 네 가지 방식

다음으로 이동:http://blog.csdn.net/dayanxuqun/article/details/26348277
다음은 맵 이 옮 겨 다 니 는 네 가지 방식 입 니 다.
//  、    value    ,   。。。  
// Map.values()     value,   key  
for (String v : map.values()) {  
    System.out.println("value= " + v);  
} 
//  、    ,  key  value,      key     ,    、    
// keySet  key value  
for (String key : map.keySet()) {  
    System.out.println("key= "+ key + " and value= " + map.get(key));  
}
//  、    ,   key value      
// entrySet  iterator  key value  
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();  
while (it.hasNext()) {  
    Map.Entry<String, String> entry = it.next();  
    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());  
}
//  、  ,       ,TreeMap      
// entrySet  key value  
for (Map.Entry<String, String> entry : map.entrySet()) {  
    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());  
} 

또 다른 큰 소 는 테스트 를 한 적 이 있 습 니 다. 큰 소 에 게 감 사 드 립 니 다!상세 하 게 보다http://www.cnblogs.com/fczjuever/archive/2013/04/07/3005997.html
여기 서 결론 만 붙 이 고 사용 합 니 다 ~:
3. 결론
3.1 HashMap 을 사용한다 면
키 와 value 를 동시에 옮 겨 다 닐 때 키 세트 와 entry Set 방법의 성능 차 이 는 키 의 구체 적 인 상황, 예 를 들 어 복잡 도 (복잡 대상), 이산 도, 충 돌 률 등에 달 려 있다.HashMap 에서 value 를 찾 는 비용 에 달 려 있다 는 얘 기다.entry Set 에서 모든 key 와 value 를 한꺼번에 꺼 내 는 작업 은 성능 비용 이 있 습 니 다. 이 손실 이 HashMap 에서 value 를 찾 는 비용 보다 적 을 때 entry Set 의 성능 장점 이 나타 납 니 다.예 를 들 어 상기 대비 테스트 에서 key 가 가장 간단 한 수치 문자열 일 때 keyset 은 오히려 효율 적 이 고 entry Set 보다 10% 적 을 수 있 습 니 다.전체적으로 엔 트 리 세트 를 추천 합 니 다.키 가 간단 할 때 그 성능 은 키 세트 보다 약간 낮 을 수도 있 지만 제어 할 수 있 기 때문이다.한편, key 의 복잡 화 에 따라 entry Set 의 장점 이 뚜렷하게 나타 날 것 이다.물론 우 리 는 실제 상황 에 따라 선택 할 수 있다.
key 만 옮 겨 다 닐 때 keyset 방법 이 더 적합 합 니 다. entry Set 은 쓸모없는 value 도 꺼 내 성능 과 공간 을 낭비 하기 때 문 입 니 다.상기 테스트 결과 에 따 르 면 keyset 은 entry Set 방법 보다 23% 가 적다.
value 만 옮 겨 다 닐 때 vlues 방법 을 사용 하 는 것 이 가장 좋 습 니 다. entry Set 은 keyset 방법 보다 약간 좋 습 니 다.
서로 다른 옮 겨 다 니 는 쓰기 에서 다음 과 같은 쓰기 방법 을 추천 합 니 다. 그 효율 이 약간 높 습 니 다.
for (String key : map.keySet()) {  
    value = map.get(key);  
}
for (Entry<String, String> entry: map.entrySet()) {  
    key = entry.getKey();  
    value = entry.getValue();  
}
for (String value : map.values()) {  
  
}

3.2 트 리 맵 을 사용 하면
key 와 value 를 동시에 옮 겨 다 닐 때 HashMap 과 달리 entry Set 의 성능 은 keyset 보다 훨씬 높 습 니 다.이것 은 TreeMap 의 조회 효율 에 의 해 결정 된다. 즉, TreeMap 에서 value 를 찾 는 비용 이 비교적 많 고 entry Set 에서 모든 key 와 value 를 한꺼번에 꺼 내 는 비용 보다 현저히 높다.따라서 TreeMap 을 옮 겨 다 닐 때 entry Set 방법 을 강력 히 추천 합 니 다.
key 만 옮 겨 다 닐 때 keyset 방법 이 더 적합 합 니 다. entry Set 은 쓸모없는 value 도 꺼 내 성능 과 공간 을 낭비 하기 때 문 입 니 다.상기 테스트 결과 에 따 르 면 키 세트 는 entry Set 방법 보다 24% 적 게 소모 되 었 다.
value 만 옮 겨 다 닐 때 vlues 방법 을 사용 하 는 것 이 가장 좋 고 entry Set 도 keyset 방법 보다 현저히 좋 습 니 다.
서로 다른 옮 겨 다 니 는 쓰기 에서 다음 과 같은 쓰기 방법 을 추천 합 니 다. 그 효율 이 약간 높 습 니 다.
for (String key : map.keySet()) {  
    value = map.get(key);  
} 
for (Entry<String, String> entry: map.entrySet()) {  
    key = entry.getKey();  
    value = entry.getValue();  
}
for (String value : map.values()) {  
  
}

좋은 웹페이지 즐겨찾기