簡體   English   中英

Map 只需輸入 Java

[英]Map with long as key in Java

我的探查器 state 我花費了很重要的一部分時間將long包裝成我想避免的Long 我目前這樣做是因為我使用Map<Long, V> 有沒有一種通常的方法來創建一個 Map 的鍵很long

我知道它不會是Map<long, V>因為類型系統不允許它,但這並不意味着從longV的 map 不存在。 實際上,這很容易做到,因為我只需要復制HashMap<K,V>的代碼,將K替換為long ,並進行類型系統所需的所有更改(例如,對鍵的迭代不是一個Iterator<K>了)

我的問題是這樣的庫是否已經存在,還是我應該自己做?

上下文是我的分析器 state,在進行批處理時,三分之一的時間花在將long轉換為Long ,並且真的沒有理由接受為類型系統付出這個代價

這不受支持,因為generics 不支持原始類型 您也不能使用原始類型(如HashMap<int,V> )創建 class 。

也許JEP 218 - Generics over Primitive Types將來會解決這個問題。

建議:

  1. 您能否首先將代碼的 rest 更改為使用Long
  2. Long class 緩存從 -127 到 128 的值( 代碼)。 探索您是否可以為更大范圍使用類似的內部緩存。

http://fastutil.di.unimi.it/是一個 class 的庫,完全按照我在這里的要求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM