java HashMap, TreeMap 및 LinkedHashMap 상세 정보
2962 단어 HashMapTreeMapLinkedHashMap
오늘 오전 면접에서 Java, Map 관련 질문을 받았는데 HashMap과 TreeMap 관련 내용을 잘못 기억했습니다. 돌아와서 데모 몇 개를 시도해 봤습니다.
package Map;
import java.util.*;
public class HashMaps {
public static void main(String[] args) {
Map map = new HashMap();
map.put("a", "aaa");
map.put("b", "bbb");
map.put("c", "ccc");
map.put("d", "ddd");
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
System.out.println("map.get(key) is :" + map.get(key));
}
Hashtable tab = new Hashtable();
tab.put("a", "aaa");
tab.put("b", "bbb");
tab.put("c", "ccc");
tab.put("d", "ddd");
Iterator iterator_1 = tab.keySet().iterator();
while (iterator_1.hasNext()) {
Object key = iterator_1.next();
System.out.println("tab.get(key) is :" + tab.get(key));
}
TreeMap tmp = new TreeMap();
tmp.put("a", "aaa");
tmp.put("b", "bbb");
tmp.put("c", "ccc");
tmp.put("d", "ddd");
tmp.put("a", "aba");
Iterator iterator_2 = tmp.keySet().iterator();
while (iterator_2.hasNext()) {
Object key = iterator_2.next();
System.out.println("tmp.get(key) is :" + tmp.get(key));
}
LinkedHashMap<String ,Integer> linkedHashMap = new LinkedHashMap<String,Integer>();
linkedHashMap.put("dasdsa", 1);
linkedHashMap.put("gdsf",2);
linkedHashMap.put("texvdfd", 3);
linkedHashMap.put("bdada", 4);
linkedHashMap.put("gdsf",3);
for(String temp : linkedHashMap.keySet()){
System.out.println(temp);
}
}
}
Map은 List와 달리 베이스에서 키 값 쌍으로 데이터 맵을 저장합니다.Entry는 내부의 하위 항목으로 맵에 따라 키 값을 맞추는 색인 방안이 다르다HashMap 자체는 Hash 함수로 키 값을 인덱스합니다. 마지막 키 값의 순서를 정할 수 없습니다.
그러나 흥미로운 현상 중 하나는 Integer를 키 값으로 맞출 때 한 자리가 한 자리일 때 키 값은 어릴 때부터 큰 줄에 따라 두 자리로 올라갈 때 문제가 있을 수 있다는 것이다
TreeMap 내부에 키 값 인덱스를 저장하는 균형 트리가 존재한다. TreeMap은 키 값을 비교 함수에 따라 정렬한다. 나는 내부에 AVLtree가 존재할 수 있다고 추측한다
LinkedHashMap이라는 특징은 키 값 쌍이 삽입 순서에 따라 정렬된다는 것이다. 만약에 중복 삽입이 존재한다면 첫 삽입 순서로 기록한다. 인터넷의 한 견해는 이 구조 내부에 2중hash가 존재한다는 것이다
하나의 해결 순서 문제, 하나의 저장 문제 해결, 정확성 확인
HashMap과 TreeMap은 가장 자주 사용하는 두 가지 맵 구조로 일반적으로 HashMap의 효율이 비교적 높고 가장 흔하다. 만약에 우리가 키 값이 질서정연해야 TreeMap을 사용할 수 있다
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[백준 1411] 비슷한 단어 (JAVA)원본 알파벳이 숌하게 바뀔 경우, 이를 HashMap을 이용해서 쌍으로 묶어준다. HashMap 사용법이 익숙하지 못 해서 어려웠던 문제이다. HashMap 사용법 30분 💬 투포인터 버전 참고...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.