[英]find key with highest value in HashMap<String,Double> using lambdaj (java)
[英]Trying to create a hash table in java using string as key & double as value
在以下程序中:
import java.util.*;
public class HashTableStringdouble
{
// private Hashtable<String, double[]> model = new Hashtable<String, double[]>();;
private Hashtable<String, double> model = new Hashtable<String, double>();; // this does not work
public static void main(String args[])
{
}
}
有雙[]但不是雙倍。 它給出以下錯誤:
HashTableStringdouble.java:7:錯誤:意外類型private Hashtable model = new Hashtable();; //這不起作用^ required:reference found:double HashTableStringdouble.java:7:error:unexpected type private Hashtable model = new Hashtable();; //這不起作用^必需:引用找到:double 2錯誤
我不確定我在這里做錯了什么。 請解釋一下Hashtable的工作原理。
您不能將原語用作Hashtable中的鍵或值,您需要使用對象。 例如,它可以使用Double
而不是double
。 它與double[]
一起使用的原因是數組是Java中的對象。
此外,Hashtable有點過時,在大多數情況下首選HashMap :
private Map<String, Double> model = new HashMap<String, Double>();
//or if you use Java 7+
private Map<String, Double> model = new HashMap<>();
Hashtable
; 使用HashMap
。 在集合框架時代之前, Hashtable
是Java 1.0的遺留物。 嘗試使用Double類而不是“native”double
您不能在Collection
使用原始類型。 Collection
s只能包含Object
類型的后代。 如果您需要具有基元的集合,您應該看看這個問題: 最有效的Java原始集合庫 。
使用HashMap
,而不是Hashtable
。 如果您確定需要同步集合,請查看Collections.synchronizedMap()
。 例如:
Map model = Collections.synchronizedMap(new HashMap());
使用包裝類。 這就是為什么首先發明它的原因之一。
private Hashtable<String, Double> model = new Hashtable<String, Double>();
import java.util.*;
public class HashTableStringdouble
{
private Hashtable<String, Double> model = new Hashtable<String, Double>();
public static void main(String args[])
{
}
}
使用Double
而不是double
。 在通用原始數據類型中是不允許的
並且不要忘記標記您已接受的正確答案。 歡迎來到stackoverflow。 如果你使用double[]
那么這意味着這是雙數組object
(只有對象可以存在於泛型中),當你使用double
它意味着原始的double
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.