尝试使用string作为键和double作为值在java中创建哈希表

MdT*_*MdT 3 java string double hashtable

在以下程序中:

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[])
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

有双[]但不是双倍.它给出以下错误:

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的工作原理.

ass*_*ias 11

您不能将原语用作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<>();
Run Code Online (Sandbox Code Playgroud)


Mar*_*nik 6

  1. 不要用Hashtable; 用HashMap.Hashtable在收集框架时代之前,它是Java 1.0的遗留物.
  2. 这不是关于地图如何在Java中工作,而是关于Java如何工作.您不能在任何地方用基本类型替换引用类型.