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は、挿入順序、つまり