Java での Hashtable と Hashmap の違い
-
Hashtable
とHashMap
-
Java で
Hashtable
を作成する -
Java で
HashMap
を作成する -
Java の
HashMap
に null を格納する -
Java の
Hashtable
に null を格納する
このチュートリアルでは、Java の Hashtable
と HashMap
の違いを紹介し、トピックを理解するためのサンプルコードもいくつか示します。
Hashtable
は、キーと値のペアでデータを格納するために使用される Java コレクションフレームワークのクラスです。これは Java のレガシークラスであり、要素を格納するためのハッシュの概念に取り組んでいます。最新の Java バージョンでは、Hashtable は推奨されていません。むしろ、Hashtable よりも高度な HashMap を使用する必要があります。Java での Hashtable と HashMap の主な違いをまとめた以下の表を参照してください。
Hashtable
と HashMap
Hashtable |
HashMap |
---|---|
同期 | 同期されていません |
ヌルは許可されていません | ヌルを許可します |
レガシークラス | レガシーではない |
遅いです | 速いです |
上記の比較表では、Hashtable と HashMap の主な違いを明確に確認できます。それでは、いくつかの例を見てみましょう。
Hashtable
は内部で同期されているため、Hashtable
は HashMap
よりもわずかに遅くなります。
Java で Hashtable
を作成する
この例では、Hashtable を作成しています。これは Hashtable を作成する最も簡単な方法であり、コードに Hashtable をインポートするだけです。このクラスは、java.util
パッケージにあります。以下の例を参照してください。
import java.util.Hashtable;
public class SimpleTesting {
public static void main(String[] args) {
Hashtable<Integer, String> hashTable = new Hashtable<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
System.out.println(hashTable);
}
}
出力:
{3=Three, 2=Two, 1=One}
Java で HashMap
を作成する
この例では、Java で HashMap
を作成しています。これは HashMap を作成する最も簡単な方法であり、コードに HashMap をインポートするだけです。このクラスは、java.util
パッケージにあります。以下の例を参照してください。
import java.util.HashMap;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<Integer, String> hashTable = new HashMap<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
System.out.println(hashTable);
}
}
出力:
{3=Three, 2=Two, 1=One}
Java の HashMap
に null を格納する
HashMap
を使用すると、null を格納できます。つまり、HashMap
に null キーと複数の null 値を格納できます。このクラスは、コレクションに null がある場合に役立ちます。以下の例を参照してください。
import java.util.HashMap;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<Integer, String> hashTable = new HashMap<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
hashTable.put(null, "Four");
hashTable.put(null, null);
System.out.println(hashTable);
}
}
出力:
{null=null, 1=One, 2=Two, 3=Three}
Java の Hashtable
に null を格納する
Hashtable
では null を格納できません。つまり、Hashtable
に null を格納することはできません。コレクションに null がある場合、このクラスは役に立ちません。以下の例を参照してください。
null 値が格納されている場合、NullPointerException
例外がスローされます。
import java.util.Hashtable;
public class SimpleTesting {
public static void main(String[] args) {
Hashtable<Integer, String> hashTable = new Hashtable<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
hashTable.put(null, "Four");
hashTable.put(null, null);
System.out.println(hashTable);
}
}
出力:
Exception in thread "main" java.lang.NullPointerException