我正在開發一個java應用程序,我在其中使用Hashmap,其中字符串作爲鍵和雙作爲值,但我知道Hashmap不能將原始類型視爲泛型,但它可能需要double []。爲什麼Hashmap值類型需要double []但不是double?
2
A
回答
4
所有陣列在Java對象,包括原始類型的數組。
這意味着您可以將它們用作泛型類型參數(而原語不能使用),例如List
元素或Map
值。他們可以站在任何你需要的地方Object
。
但要注意,數組沒有的equals
或hashCode
「正確」的實現,進而使可怕鍵在Map
(值是罰款)。
5
因爲它是原始的,所以不能使用double
。但是,您可以改用Double
。
有關更多詳細信息,請參閱以下問題。
Why can Java Collections not directly store Primitives types?
-1
不能使用原始類型(int,boolean,double等)作爲映射鍵或值。但是每個基本類型都有一個包裝類(int - Integer,double - Double等),您可以使用它們。
由於Java 1.5原始值的爲包裝對象轉換是自動的(這就是所謂的自動裝箱/拆箱):
Map<String, Double> m = new HashMap<>();
m.add("a", 1.0);
double a = m.get("a");
相關問題
- 1. 爲什麼boost :: call_traits <double> :: param_type是「const double&」,而不是「double」
- 2. ceil(double)中的「double」是做什麼的?
- 3. Double in HashMap
- 4. xgboost4j - spark評估需要RDD [(Double,Double)]
- 5. 寫`double ...`而不是`[] double`
- 6. 爲什麼Math.max(double a,double b)是可變的?
- 7. Java double不會否定!爲什麼?
- 8. 爲什麼gettype()表示它是double,但var_dump()表示float?
- 9. 爲什麼Scala強制從Char到Double類型?
- 10. 爲什麼Double在達到Double Max之前達到`Double.infinity`?
- 11. 乘以double類型值給出輸出
- 12. 返回Double類型的值時出錯?
- 13. 無法設置爲Double值,類型爲Single的非空值
- 14. 爲什麼Double在Scala.js中用於不需要「雙倍」的屬性?
- 15. Scala:List [Double]與列表[Double]的列表[Int]有什麼不同?
- 16. C++將vector <pair <double,double >>轉換爲double *,double *?
- 17. 爲什麼它總是調用父類方法「doTest(double d)」?
- 18. 打印Double as Int - 如果不是Double值
- 19. EditableGrid數據類型:double
- 20. Hadoop Hive DOUBLE類型問題
- 21. 將圖像轉換爲double類型
- 22. 演員對象(double類型)爲int
- 23. 我是否認爲(int,double ...)作爲類
- 24. 爲什麼我的解析Double值不正確?
- 25. 爲什麼將double賦值給int不會觸發gcc警告?
- 26. 我需要使用double而不是int,因爲我的結果是正確的。爲什麼? (Java)
- 27. 不兼容的類型java.util.List double
- 28. C++:爲什麼我的平均值返回爲int而不是double?
- 29. numeric_limits <double> :: digits10是什麼意思
- 30. rspec中的double方法是什麼?
由於'雙[]'是引用類型(它的Object'的'的子類),而不是一個原始的。 –
'double'是原始的,'double []'不是。 – Maroun
另請參見[數組是基本類型還是對象](https://stackoverflow.com/a/12807748/8051589)。 –