java HashMap, TreeMap 및 LinkedHashMap 상세 정보

java HashMap, TreeMap 및 LinkedHashMap 상세 정보
오늘 오전 면접에서 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을 사용할 수 있다
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기