質問編集履歴
3
条件の更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,5 +30,7 @@
|
|
30
30
|
### 追記
|
31
31
|
効率に関しては,最終的には時間計算量の削減,次点で空間計算量の削減ですが,理論上改善しうる実装がないかという意図です.
|
32
32
|
|
33
|
+
Enumクラスは2つとは限りません.任意です.
|
34
|
+
|
33
35
|
### 考えたこと
|
34
36
|
実行時に enum1, enum2 の定数に動的にインデックス番号を割り振って,それによって配列操作をすればマッピング可能ですが,インデックス番号の割り振りに Map を使うので根本的解決にはならない.実行時に動的にインデックス番号を割り振って HashMap よりも高速にアクセスする方法はあるか?
|
2
指摘に対する追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,3 +26,9 @@
|
|
26
26
|
さらに,上記のようなMapのインスタンスを大量に生成します.
|
27
27
|
Enumクラスを複数定義しているのでEnumMapは利用できませんが,実行時にはすべての定数が決まっているため,できるだけメモリ使用量,計算量ともに最小にしたいです(計算資源を多少気にする状況です).現在は,Enum<?>をキーとするHashMapを利用していますが,hashの衝突が発生しうる上に,負荷係数設定の関係でメモリも余分に使用しています.
|
28
28
|
より良い実装(Enum以外のクラスを使用する方法,効率的なマッピングの方法など)のアイデアがありましたら教えていただきたいです.
|
29
|
+
|
30
|
+
### 追記
|
31
|
+
効率に関しては,最終的には時間計算量の削減,次点で空間計算量の削減ですが,理論上改善しうる実装がないかという意図です.
|
32
|
+
|
33
|
+
### 考えたこと
|
34
|
+
実行時に enum1, enum2 の定数に動的にインデックス番号を割り振って,それによって配列操作をすればマッピング可能ですが,インデックス番号の割り振りに Map を使うので根本的解決にはならない.実行時に動的にインデックス番号を割り振って HashMap よりも高速にアクセスする方法はあるか?
|
1
プログラムのミス修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
public static void main(String[] args) {
|
15
15
|
Map<Enum<?>, Object> map = new HashMap<>();
|
16
16
|
map.put(enum1.APPLE, object1);
|
17
|
-
map.put(enum2.APPLE, object
|
17
|
+
map.put(enum2.APPLE, object2);
|
18
18
|
...
|
19
19
|
}
|
20
20
|
```
|