私は長い間Pythonを使用しており、辞書の使用方法が本当に好きです。辞書は非常に直感的で使いやすいです。優れたJava = pythonの辞書と同等ですか?ハッシュマップとハッシュテーブルを使用している人のことを聞いたことがあります。
Pythonのdict
クラスは、Pythonドキュメントが非公式に " mapping types "と呼ぶものの実装です。内部では、dict
はハッシュテーブル。
Javaの HashMap
クラスは Map
インターフェイスの実装です。内部的に、HashMap
はハッシュテーブルを使用して実装されます。
構文にはいくつかの小さな違いがあり、実装はわずかに異なるように調整されていますが、全体的には完全に互換性があります。
辞書と地図の考え方は似ています。両方のような要素が含まれています
_key1:value1, key2:value2 ... and so on
_
Javaでは、Map
はHashMap
やTreeMap
などのさまざまな方法で実装されます。put(), get()
操作は似ています
_import Java.util.HashMap;
Map map = new HashMap();
// Put elements to the map
map.put("Ram", new Double(3434.34));
map.put("Krishna", new Double(123.22));
map.put("Hary", new Double(1378.00));
//to get elements
map.get("Krishna"); # =123.22
map.get("Hary"); # = 1378.00
_
Java8のHashMapのドキュメントを参照してください https://docs.Oracle.com/javase/8/docs/api/Java/util/HashMap.html
2つの違いの1つは、dict
がキーとして機能できるデータ型に関してより厳しい要件を持っていることです。 Javaは、任意のオブジェクトがキーとして機能することを許可します。ただし、オブジェクトのhashCode()
メソッドが内部状態を反映する一意の値を返すように注意する必要があります。 Pythonは hashable の定義に適合するキーを必要とします。これは、オブジェクトのハッシュコードがその存続期間中に変更されないことを指定します。
私が知っている限り(私は実際にJavaを使用していません)、辞書はハッシュマップ/ハッシュテーブルの単なる別の名前です。
http://www.fluffycat.com/Java/HashMaps/ からコードを取得することは、非常によく似た方法で使用されているようで、少し余分なJavaボイラープレートがあります。