JavaのEnumMapクラス
java.util.EnumMapクラスは、列挙型キーで使用するための特殊なMap実装です。 EnumMapに関する重要なポイントは次のとおりです-
-
列挙型マップのすべてのキーは、マップの作成時に明示的または暗黙的に指定された単一の列挙型から取得する必要があります。
-
列挙型マップは、キーの自然な順序で維持されます。
-
EnumMapは同期されていません。複数のスレッドが同時に列挙型マップにアクセスし、少なくとも1つのスレッドがマップを変更する場合は、外部で同期する必要があります。
以下は、EnumMapクラスのコンストラクターです-
| Sr.No | |
|---|---|
| 1 | EnumMap(Class このコンストラクターは、指定されたキータイプで空の列挙型マップを作成します。 |
| 2 | EnumMap(EnumMap このコンストラクターは、指定された列挙型マップと同じキータイプで列挙型マップを作成します。最初は同じマッピング(存在する場合)が含まれます。 |
| 3 | EnumMap(Map このコンストラクターは、指定されたマップから初期化された列挙型マップを作成します。 |
例
例を見てみましょう-
import java.util.EnumMap;
public class Demo {
// create an enum
public enum Numbers {
ONE, TWO, THREE, FOUR, FIVE
};
public static void main(String[] args) {
EnumMap<Numbers, String> map1 = new EnumMap<Numbers, String>(Numbers.class);
EnumMap<Numbers, String> map2 = new EnumMap<Numbers, String>(Numbers.class);
// associate values in map1
map1.put(Numbers.ONE, "1");
map1.put(Numbers.TWO, "2");
map1.put(Numbers.THREE, "3");
map1.put(Numbers.FOUR, "4");
// print the whole map
System.out.println("map1:" + map1);
// clone map1 to map2
map2 = map1.clone();
// print map2
System.out.println("map2:" + map2);
}
} 出力
map1:{ONE=1, TWO=2, THREE=3, FOUR=4}
map2:{ONE=1, TWO=2, THREE=3, FOUR=4} 例
マップ内のKey-Valueマッピングの数を表示している別の例を見てみましょう-
import java.util.*;
public class EnumMapDemo {
// create an enum
public enum Numbers {
ONE, TWO, THREE, FOUR, FIVE
};
public static void main(String[] args) {
EnumMap<Numbers, String> map = new EnumMap<Numbers, String>(Numbers.class);
// assosiate values in map
map.put(Numbers.ONE, "1");
map.put(Numbers.TWO, "2");
map.put(Numbers.THREE, "3");
map.put(Numbers.FOUR, "4");
// print the map
System.out.println("Map: " + map);
// print the number of mappings of this map
System.out.println("Number of mappings:" + map.size());
// remove value from Numbers.THREE
map.put(Numbers.FIVE, "5");
// print the new number of mappings of this map
System.out.println("Number of mappings:" + map.size());
}
} 出力
Map: {ONE=1, TWO=2, THREE=3, FOUR=4}
Number of mappings:4
Number of mappings:5 -
Javaのスーパーキーワード
スーパー変数は直接の親クラスインスタンスを参照します。 スーパー変数は、直接の親クラスメソッドを呼び出すことができます。 super()は、直接の親クラスコンストラクターとして機能し、子クラスコンストラクターの最初の行である必要があります。 オーバーライドされたメソッドのスーパークラスバージョンを呼び出す場合、superキーワードが使用されます。 例 class Animal { public void move() { System.out.println("Animals can move");
-
Javaでの集約
集約とはHAS-A関係を指します。最初に例を見てみましょう- 例 public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; } これは、クラスVanHAS-ASpeedを示しています。 Speed用に別のクラスを用意することで、speedに属するコード全体をVanクラス内に配置する必要がなくなり、複数のアプリケーションでSpeedクラスを再利用できるようになります。 オブジェクト指向機能では、ユーザーはどのオブジェクトが実際の作業を