当前位置: 首页 > 知识库问答 >
问题:

Android - 用不同的数据类型填充哈希图

彭胡媚
2023-03-14

有可能像这样填充哈希图吗?

final HashMap<String, String> map = new HashMap<>();
            map.put("path", path);
            map.put("tableName", "table");
            map.put("fileType", fileType);

final HashMap<String, String> option = new HashMap<>();
            map.put("option", option.put("header", "true"));

或者还有比这更正确(或更好)的方法吗?因为当我试图打印“地图”时,键“选项”没有任何价值。

预先感谢

共有3个答案

纪勇军
2023-03-14
   HashMap<String ,Object> data= new HashMap<>();
    data.put("post",myPost);
    data.put("username",userName);
    data.put("date" ,date);

您可以在android Studio中使用HashMap使用不同的数据类型-java

谈禄
2023-03-14

您可以通过以下方式存储数据:

    public static void main(String[] args){

      Map<String, String> dataMap = new HashMap<>();
      dataMap.put("key1", "Hello");
      dataMap.put("key2", "Hello2");

      Map<String, Object> map = new HashMap<>();
      map.put("1", 1);
      map.put("2", dataMap);
      map.put("3", "Value3");

      Object obj = map.get("1");
      printData(obj);

      Object obj2 = map.get("2");
      printData(obj2);

      Object obj3 = map.get("3");
      printData(obj3);

   }

    private static void printData(Object obj) {
    if (obj instanceof Integer) {
        Integer integer =convertInstanceOfObject(obj, Integer.class);
        System.out.println(integer);
    }else if( obj instanceof HashMap){

        HashMap<String, String> resMap = convertInstanceOfObject(obj, HashMap.class);

        System.out.println(resMap);
    }else if( obj instanceof String ){
        String data = convertInstanceOfObject(obj, String.class);

        System.out.println(data);
    }
}


public static <T> T convertInstanceOfObject(Object o, Class<T> clazz) {
    try {
        return clazz.cast(o);
    } catch(ClassCastException e) {
        return null;
    }
}

输出:

1
{key1=Hello, key2=Hello2}
Value3

map类型为映射

邢雨华
2023-03-14

你不能这样做,你必须正确指定数据类型,

final HashMap<String, String> map = new HashMap<>();
        map.put("path", path); //path has to be a variable pointing to a string
        map.put("tableName", "table");
        map.put("fileType", fileType); // filetype has to be a variable pointing to a string

final HashMap<String, String> option = new HashMap<>(); 
        map.put("option", option.put("header", "true")); //this is wrong

HashMap<String,Map<String,String>> option = new HashMap<String,HashMap<String,String>>();
option.put("Key",map);

示例:创建和填充地图

Map<String, Map<String, Value>> outerMap = new HashMap<String, HashMap<String, Value>>();
Map<String, Value> innerMap = new HashMap<String, Value>();    
innerMap.put("innerKey", new Value());

存储地图

outerMap.put("key", innerMap);

检索地图及其值

Map<String, Value> map = outerMap.get("key");
Value value = map.get("innerKey"); 
 类似资料:
  • 问题内容: 我遇到了一个以前不必处理的问题。我正在用Java为数据库编写一个补丁,该补丁基本上是在转换存储在某些行中的数据。为了做到这一点,我有一个转换表,告诉我什么值变成什么。 例如,如果我读了“ RC”,“ AC”,“ GH”之一->将值更新为“ T1”。(这些只是随机的示例,基本上是将一个字符串转换为另一个字符串。) 我需要一种存储这些转换的好方法。我在想一个哈希图:KEY,VALUE:(R

  • redis Hash 类型 >[info] 相当于JS中的对象 {name:'xxx',age:'xxx',gender:'xxx'}

  • 我有一个k v的散列表,那里有一些dup键,比如: 123 foo 123 咕噜 345 ggg 567 千卡 我想用此信息填充我的 html 表,即使有重复项,所以这就是我打印它的方式: 所以现在我如何填充表格,我尝试了这样的方法: 然后: 但我不知道如何得到每个键的值。。。 我希望最终的分辨率看起来像: 密钥值 123 kkk 123 fff 345 lll

  • 问题内容: 我的问题如下: 我需要根据汽车租赁实例中的信息填充“汽车”表。 我需要创建一个主键“ car_id”,但仅针对出租表中的不同车牌。 我正在创建带有序列的car_id。 我尝试了以下代码,但收到错误消息: 尽管这将起作用(没有不同的车牌): (第一行带有注释,因此我可以立即看到要输出的值) 所以!有谁知道我怎么能做?A)获取上面的代码以使用DISTINCT或B)找到一种方法来获取序列的M

  • 问题内容: 我正在尝试使用来自Web服务的数据填充jqGrid。我已经仔细研究了jqGrid代码和文档。我需要另一双眼睛看下面的代码,并告诉我是否缺少某些内容。 正如您将在代码中看到的那样,我将网格设置为在页面加载时或刷新期间加载。加载网格后,我再次调用Ajax以获取JSON数据并显示在网格下方的div中。 我看到了大多数预期的行为。页面加载后,网格显示加载指示器,然后启动Ajax调用,并且JSO

  • 我正在尝试从相应的字符串值填充Kotlin数据类。我使用GSON查看了来自Json的:Kotlin数据类,但我试图做的并不是跟踪完全相同的: 调用此函数并尝试填充以下类: 但没有欢乐。stringValue是gson.toJson(value)生成的东西,其中value是一个JSONObject。 有人知道我的断线是什么吗?