android 에서 맵 을 옮 겨 다 니 는 네 가지 방식
다음은 맵 이 옮 겨 다 니 는 네 가지 방식 입 니 다.
// 、 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()) {
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.