Java Hashmap、Treemap、Linkedhashmapの詳細な説明
今朝のインタビューで、私はJavaとMap関連のことについて尋ねました。 HashmapとTreemapに関連するコンテンツを誤って思い出しました。私が戻ってきたとき、私はすぐにいくつかのデモを試して理解しました。
パッケージマップ。 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.Entryは内部サブエントリです。 MAPの実装が異なると、キー価値ペアのインデックススキームが異なります。
ハッシュマップ自体は、ハッシュ関数を使用してキー値をインデックス化します。最後のキー値の順序を決定することはできません。
ただし、整数をキー価値ペアとして使用すると、数字が1桁の場合、キー値は小から大部分に配置され、数字が2桁まで上昇すると問題が発生する可能性があるという興味深い現象があります。
Treemap内にバランスの取れたツリーがあり、キー価値インデックスを保存します。 Treemapは、比較関数に従ってキー値をソートします。私は中にavltreeがあるかもしれないと推測します。
LinkedHashmapには、キー価値のペアが挿入順にソートされる機能があります。繰り返し挿入がある場合、それらは最初の挿入順に記録されます。インターネット上のことわざの1つは、構造内に2つのハッシュがあることです。
1つは順序の問題を解決し、もう1つはストレージの問題を解決します。正しさは確認されます
HashmapとTreemapは、最も一般的に使用される2つのマップ構造です。一般的に言えば、ハッシュマップは比較的効率的で最も一般的です。キー値で注文する必要がある場合にのみ、TreeMapを使用します。
読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!