JavaでのEnumMapとHashMapの違い
EnumMapはJDK5で導入されました。これは、マップのキーとして列挙型を使用するように設計されています。これは、マップインターフェイスの実装でもあります。 EnumMapのすべてのキーは同じ列挙型である必要があります。 EnumMapでは、キーをnullにすることはできず、キーを押すとNullPointerExceptionがスローされます。
javaドキュメントによる-
EnumMapは内部的に配列として使用され、この表現は非常にコンパクトで効率的です。
HashMapは、Mapインターフェースの実装でもあります。キーと値の形式でデータを保存するために使用されます。 1つのnullキーと複数のnull値を含めることができます。 HashMapでは、キーをプリミティブ型にすることはできません。 Java HashMap実装は、ハッシュ関数が要素をバケット間で適切に分散すると仮定して、基本操作(getおよびput)に一定時間のパフォーマンスを提供します。
| Sr。いいえ。 | キー | EnumMap | HashMap |
|---|---|---|---|
| 1 | 基本 | 列挙型キーで使用するための特殊なMap実装 | HashMapは、Mapインターフェースの実装でもあります。 |
| 2 | ヌルキー | nullキーを持つことはできません。 | 1つのnullキーと複数のnull値を持つことができます |
| 3 | パフォーマンス | すべての操作は一定時間で実行されるため、HashMapよりも高速です | HashMapよりも遅い |
| 4. | 内部実装 | 内部的に配列を使用します | 内部でハッシュテーブルを使用します |
| 5. | 注文 | EnumMapは、キーをキーの自然な順序で格納します | HashMapは注文されていません |
EnumMapの例
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
public class EnumMapExample {
public enum LaptopEnum {
HCL, DELL, IBM
};
public static void main(String[] args) {
// create enum map
EnumMap map = new EnumMap(LaptopEnum.class);
map.put(LaptopEnum.HCL, "100");
map.put(LaptopEnum.DELL, "200");
map.put(LaptopEnum.IBM, "300");
// print the map
for (Map.Entry m : map.entrySet()) {
System.out.println(m.getKey() + " " + m.getValue());
}
}
} HashMapの例
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
// create Hash map
Map map = new HashMap();
map.put("HCL", "100");
map.put("DELL", "200");
map.put("IBM", "300");
// print the map
for (Map.Entry m : map.entrySet()) {
System.out.println(m.getKey() + " " + m.getValue());
}
}
} -
Javaでのイテレータと列挙の違い
IteratorとEnumerationはどちらも、コレクションの要素をトラバースしてアクセスするためのカーソルです。どちらもコレクションフレームワークに属しています。列挙は、コレクションフレームワークのJDK1.2バージョンのJDK1.0およびIteratorで追加されました。 コレクション内の要素への読み取り専用アクセス権があるため、列挙型はコレクション内の構造を変更できません。次の方法があります: * hasMoreElements() * nextElement() 一方、イテレータはコレクション内の要素を読み取って削除できます。以下の方法があります- * hasNe
-
JavaでのArrayListとHashSetの違い
HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり