web-dev-qa-db-ja.com

Java Python Dictionariesと同等

私は長い間Pythonを使用しており、辞書の使用方法が本当に好きです。辞書は非常に直感的で使いやすいです。優れたJava = pythonの辞書と同等ですか?ハッシュマップとハッシュテーブルを使用している人のことを聞いたことがあります。

82
slimbo

Pythonのdictクラスは、Pythonドキュメントが非公式に " mapping types "と呼ぶものの実装です。内部では、dictはハッシュテーブル。

Javaの HashMap クラスは Map インターフェイスの実装です。内部的に、HashMapはハッシュテーブルを使用して実装されます。

構文にはいくつかの小さな違いがあり、実装はわずかに異なるように調整されていますが、全体的には完全に互換性があります。

93
Daniel Pryden

辞書と地図の考え方は似ています。両方のような要素が含まれています

_key1:value1, key2:value2 ... and so on
_

Javaでは、MapHashMapTreeMapなどのさまざまな方法で実装されます。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

22
Hary Bakta

2つの違いの1つは、dictがキーとして機能できるデータ型に関してより厳しい要件を持っていることです。 Javaは、任意のオブジェクトがキーとして機能することを許可します。ただし、オブジェクトのhashCode()メソッドが内部状態を反映する一意の値を返すように注意する必要があります。 Pythonは hashable の定義に適合するキーを必要とします。これは、オブジェクトのハッシュコードがその存続期間中に変更されないことを指定します。

5
Tim Clemons

私が知っている限り(私は実際にJavaを使用していません)、辞書はハッシュマップ/ハッシュテーブルの単なる別の名前です。

http://www.fluffycat.com/Java/HashMaps/ からコードを取得することは、非常によく似た方法で使用されているようで、少し余分なJavaボイラープレートがあります。

4
Tabitha