ContentValues、HashMapとHashTableの区別

ContentValuesとHashTable

両者の最大の違いはcontenvaluesKeyがStringタイプ、valuesが記憶の基本的なタイプのデータ、たとえばstring,intとか,などなど、ストレージの対象にできない。ContentValuesは常用データベースの操作。 (两者最大的区别就在于,contenvalues Key只能是String类型,values只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西。ContentValues 常用在数据库中的操作。) データベース中でデータを挿入する時、まず一つContentValuesの対象: (在往数据库中插入数据的时候,首先应该有一个ContentValues的对象所以:)

1
2
3
4
5
6
7
8
    <pre>
    <code class="java">
    ContentValues values = new ContentValues();
    values .put(key,values);
    SQLiteDataBase sdb ;
    sdb.insert(database_name,null,initialValues);
    </code>
    </pre>

HashMapとHashTable

HashMapはnullをentryのkey or valueすべき、しかし、Hashtableは許可ない。HashMapをHashtableのcontains方法をやめ、containsvalueとcontainsKey。 (HashMap不是线程安全的,HashTable是线程安全的一个Collection。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。) Hashtableから受け継がれDictionaryクラス、そしてHashMapはJava1.2導入のMap interfaceの実現。最大の違いは、Hashtable方法はSynchronize、HashMapじゃない、複数のスレッドHashtable訪問時、自分がいらないでその方法を実現しなければならない同時、HashMapの提供のほか同期。HashtableとHashMap採用のhash / rehashアルゴリズムも大体同じですので、性能は大きな差がある。 (Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。)

プログラムをしようとする多くのkey-value入れHashMap中の場合、下記のコードの断片を例に: (当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:)

1
2
3
4
5
6
7
8
    <pre>
    <code class="java">
    HashMap<String , Double> map = new HashMap<String , Double>();   
    map.put("语文" , 80.0);   
    map.put("数学" , 89.0);   
    map.put("英语" , 78.2); 
    </code>
    </pre>

Hashtableの長所:検索スピードは速くて、像は上記のキーを通じて急速によって探すことを計算、キーの唯一のアドレス(キーが異なる場合)は、そのアドレスとして保管VALUE。 (Hashtable优点:查找速度快,像上面提到的通过KEY快速查找,因为通过KEY会计算一个唯一的地址(KEY不相同的情况下),而那个地址就存放了VALUE。) Hashtableの短所:データ量が大きい時メモリ占用大。 (Hashtable缺点:对数据量大的时候内存占用大。)

使用Hashtableの簡単な例を以下には1、2、3をHashtableの中で、彼らのキーは"one","two","three": (使用Hashtable的简单示例如下,将1,2,3放到Hashtable中,他们的key分别是"one","two","three":)

1
2
3
4
5
6
7
8
<pre>
<code class="java">
Hashtable numbers = new Hashtable();
numbers.put("one", new Integer(1));
numbers.put("two", new Integer(2));
numbers.put("three", new Integer(3));
</code>
</pre>