【问题标题】:Initializing HashMap datatype in Android在 Android 中初始化 HashMap 数据类型
【发布时间】:2015-07-15 14:01:08
【问题描述】:

我必须将参数发送到服务器。 下面是我如何使用HashMap的代码。

我在这段代码中遇到错误,我尝试将纬度和经度声明为 double 并在 Map 中使用 Double。如果我这样做,我会开始在 String 类型的其他参数中收到错误。

protected Map<String,Double,Double, String> getParams() {
    // Posting params to register url
    Map<String, Double, Double, String> params = new HashMap<String, Double, Double, String>();
    params.put("tag", "LocationUpdate");
    params.put("email", email);
    params.put("latitude", latitude);
    params.put("longitude", longitude );
    params.put("last_seen",last_seen );
    return params;
}

【问题讨论】:

  • 嗯,没有 Map&lt;String,Double,Double, String&gt; 这样的东西 - Map 类型有两个类型参数 - 一个用于键,一个用于值。您正在尝试指定四个类型参数。您希望它如何工作?
  • 为什么是 Map ???
  • 你为什么不只添加String 的lat 和long。只是地图

标签: java android hashmap


【解决方案1】:

使用前最好查看java map api

Map 只有两个通用类型变量。所以你可以只用两个类型参数创建map

Map&lt;String, Double&gt; = new HashMap&lt;String,Double&gt;

这里您的密钥类型为 String,值类型为 Double

【讨论】:

    【解决方案2】:

    改成这个

     protected Map<String,String> getParams()
        {
            // Posting params to register url
            Map<String,String> params = new HashMap<String,String>();
            params.put("tag", "LocationUpdate");
            params.put("email", email);
            params.put("latitude", String.valueOf(latitude));
            params.put("longitude", String.valueOf(longitude));
            params.put("last_seen",last_seen );
            return params;
        }
    

    因为 Map 是一个键值容器。由于在此示例中所有内容都可以解析为字符串,因此只需获取双打的字符串值,当您再次需要它们时,请执行以下操作:

    double latitude = Double.parseDouble(params.get("latitude));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 2010-09-30
      • 2019-03-16
      • 2014-07-17
      • 1970-01-01
      相关资源
      最近更新 更多