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

如何在哈希映射中保存类型的多个值?

邓焱
2023-03-14

我需要创建一个带有单键的哈希表,它应该包含多个字符串,数组列表,字符串,数组列表类型的值..

爱尔兰共和国..,字符串类型的Msg,整数数组列表类型的groupdestId,字符串类型的Id,整数数组列表类型的userdestId..

HashMap<String,String> body = new HashMap<>();
body.put("message",Msg);
body.put("groupdestId",groupdestId);
body.put("id",id); 
body.put("destId",userdestId);

共有3个答案

田鸿彩
2023-03-14

如果您希望存储多种类型

HashMap<String,Object> body = new HashMap<>();'

通常不鼓励混合类型,并确保在取回需要正确检查的值时。否则您最终会出现类强制转换异常。

此外,你需要一个对象,而不是地图,因为我可以看到所有的关键是相关的。只需创建一个类并使用该类来存储这些属性。

public class Body {

private String message;    
private int groupdestId;
private int id;
private List<String> vals;

// other attributes and getters/setters


}
韩寒
2023-03-14

首先在声明dataType的地方创建一个WrapperClass。

Class StringAndListWrapper{
    String stringValue;
    List<String> stringListValue;
    public StringAndListWrapper(){
       stringValue = new String();
       stringListValue = new ArrayList<>();
    }
}

然后你可以把包装器放在HashMap中,

String Key = "your key";
HashMap<String, StringAndListWrapper> hmap = new HashMap<>();
StringAndListWrapper stringAndListWrapper = new StringAndListWrapper();
stringAndListWrapper.stringValue = "putYourStringValue";
stringAndListWrapper.stringListValue.add("add Elements Here");
hmap.put(key, stringAndListWrapper);
范浩宕
2023-03-14

只需将地图定义为

Map<String, Object> body = new HashMap<>();

一个地图

  • 字符串
  • 数组列表

如果您不知道需要存储什么值(类型和名称),这种解决方案将为您提供最大的灵活性。

如果您确切地知道需要处理哪些数据,那么更好的解决方案是定义一个自定义类,该类具有名为 Map 键的属性。

public class DataHolder {
    private String message;
    private List<Integer> groupdestId;
    private String id;
    private List<Integer> userdestId;

    // Add getters and setters
}

此外,如果您知道这些数据不会随着时间的推移而改变值,更好的解决方案是创建一个不可变类,以便它可以在多线程环境中共享,而无需同步访问它们。

 类似资料:
  • 我需要从我的Android向Algolia发送数据,发送的数据应该是JSONObject格式(导入org.json.JSONObject) Algolia中的数据应采用此格式 所以在Android中,我这样设置代码 在这行代码中 那么我应该怎么做才能以JSONObject格式发送hashmap数据呢?

  • 有人能帮我找到一份没有重复的正确清单吗。 我有一个哈希映射列表,比如“HashMap map”,它的大小是4。键值对类似于以下内容 我想创建另一个Hashmap列表,其中包含“uri\u path”的单个条目以及相应计算的平均值和计数。这就是我正在尝试的。理想情况下,新列表的大小应小于原始列表的大小。有人能帮我理解是不是出了问题

  • 问题内容: 使用hashmap而不是使用对象类好吗……使用Hashmap…。 并使用对象类..... 请在应用程序运行状况,内存要求等方面告诉我… 问题答案: 这在很大程度上取决于您要实现的目标:为了提高灵活性,哈希映射会更好。但是灵活性是有代价的:哈希映射比具有相同数量的强类型字段的类还要大和慢。 哈希映射比具有相同数量字段的类具有更大的内存占用量 哈希图会强制对基元进行装箱 哈希图的创建和访问

  • 我可以有一个哈希图在Java看起来像这样吗? 我的问题和这里的类似问题 我是Java新手。所以我想知道的是,如果我需要上面这样的东西,如果它无效,什么是最好的数据结构?

  • Java是将重复值保存为唯一值还是单独保存? 假设我有以下键值对值: 是否将其保存为3个键和3个值,或保存为3个键和2个值(A的值与C的值完全相同) 我担心的是大小,因为我要保存的值非常大,复制它们毫无意义。

  • 本文向大家介绍Java中并发哈希映射和同步哈希映射之间的区别,包括了Java中并发哈希映射和同步哈希映射之间的区别的使用技巧和注意事项,需要的朋友参考一下 并发Hashmap是jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。  同步hashmap(Collection.syncronizedHashMap())是C