質問編集履歴

3

条件の更新

2023/04/29 05:43

投稿

snorlax
snorlax

スコア0

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

指摘に対する追記

2023/04/29 05:41

投稿

snorlax
snorlax

スコア0

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

プログラムのミス修正

2023/04/28 23:03

投稿

snorlax
snorlax

スコア0

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, object1);
17
+ map.put(enum2.APPLE, object2);
18
18
  ...
19
19
  }
20
20
  ```