Java Hashmap, Treemap 및 Linkedhashmap에 대한 자세한 설명
오늘 아침 인터뷰에서 나는 Java와 MAP 관련 사항에 대해 물었습니다. Hashmap 및 Treemap과 관련된 내용을 잘못 기억했습니다. 내가 돌아 왔을 때, 나는 이해하기 위해 몇 가지 데모를 빨리 시도했다.
패키지지도; java.util.*; 공개 클래스 해시 맵 {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 = map.keyset (). iterator (); while (iterator.hasnext ()) {개체 키 = iterator.next (); System.out.println ( "map.get (키)은" + 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 ()) {개체 키 = iterator_1.next (); System.out.println ( "tab.get (키)은 :" + 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 ()) {개체 키 = iterator_2.next (); System.out.println ( "tmp.get (키)은 :" + 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.entry는 내부 하위 입장입니다. 맵의 다른 구현에는 키 값 쌍에 대한 인덱스 체계가 다릅니다.
Hashmap 자체는 해시 함수를 사용하여 키 값을 색인합니다. 마지막 키 값의 순서를 결정할 수 없습니다.
그러나 Integer를 키 값 쌍으로 사용할 때, 숫자가 1 자리 일 때, 키 값은 작은 것에서 큰 것으로, 숫자가 두 자리로 올라가면 문제가있을 수 있다는 흥미로운 현상이 있습니다.
Treemap에는 균형 잡힌 트리가 있습니다. 키 값 인덱스를 저장합니다. Treemap은 비교 함수에 따라 주요 값을 정렬합니다. 나는 내부에 avltree가있을 수 있다고 추측한다.
LinkedHashMap에는 키 값 쌍이 삽입 순서대로 정렬되는 기능이 있습니다. 삽입이 반복되는 경우 첫 번째 삽입 순서로 기록됩니다. 인터넷의 말 중 하나는 구조물 내에 두 개의 해시가 있다는 것입니다.
하나는 주문 문제를 해결하고 다른 하나는 저장 문제를 해결하고 정확성을 확인해야합니다.
해시 맵과 트리 맵은 가장 일반적으로 사용되는 두 가지 맵 구조입니다. 일반적으로 해시 맵은 비교적 효율적이며 가장 일반적입니다. 주요 값으로 주문 해야하는 경우에만 Treemap을 사용합니다.
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!