hashmap 相关问题

一种数据结构,它使用散列函数将标识值(称为键)映射到其关联值

如何将 json 转换为 Map<String, Object> 确保整数为 Integer

我有一个 json 对象,其中包含值为 String、Double 和 Integer 的嵌套对象。当我转换为 Map 时,它假设 Integer 为 Double。我怎样才能改变这个? 地图 我有一个 json 对象,其中包含值为 String、Double 和 Integer 的嵌套对象。当我转换为 Map 时,假设 Integer 为 Double。我怎样才能改变这个? Map<String, Object> map = response.getJson(); 我的回复包含以下字段 { .... "age" : 14, "average" : 12.2, .... } average 已正确转换为 Double,但年龄预计为 Integer,但在 converted 中由 Double 转换为 Map 您可以通过对 Map 进行后处理,将 Double 值转换为 Integer(如果可能),例如 static void convertIntegerToDouble(Map<String, Object> map) { Map<String, Object> updates = new HashMap<>(); for (Iterator<Entry<String, Object>> iter = map.entrySet().iterator(); iter.hasNext(); ) { Entry<String, Object> entry = iter.next(); Object value = entry.getValue(); if (value instanceof Map) { @SuppressWarnings("unchecked") Map<String, Object> submap = (Map<String, Object>) value; convertIntegerToDouble(submap); } else if (value instanceof Double) { double d = ((Double) value).doubleValue(); int i = (int) d; if (d == i) updates.put(entry.getKey(), i); } } map.putAll(updates); } 测试 Map<String, Object> map = new HashMap<>(Map.of( "A", 42.0, "B", new HashMap<>(Map.of( "K", 42.0, "L", new HashMap<>(Map.of( "R", 42.0, "S", 3.14 )), "M", 3.14 )), "C", 3.14, "D", "Foo" )); System.out.println(map); convertIntegerToDouble(map); System.out.println(map); 输出 {A=42.0, B={K=42.0, L={R=42.0, S=3.14}, M=3.14}, C=3.14, D=Foo} {A=42, B={K=42, L={R=42, S=3.14}, M=3.14}, C=3.14, D=Foo} 您可以使用 GsonBuilder 和 setObjectToNumberStrategy 在 Gson 中配置此行为: Gson gson = new GsonBuilder() .setObjectToNumberStrategy(LONG_OR_DOUBLE) .create(); byte[] data = gson.toJson(Map.of("id", 1)).getBytes(UTF_8); Map<String, Object> map = gson.fromJson(new String(data, StandardCharsets.UTF_8), Map.class); System.out.println(map);

回答 2 投票 0

遍历JsonNode

这是JsonNode响应有多少不同的键值对,类似于下面的例子。如何遍历它以获得键和值对的响应? { “消息”:“

回答 2 投票 0

来自 ST monad 的 Haskell 哈希表

我正在尝试使用 Haskell St monad,但是不幸的是,我不明白如何将纯函数和这个 monad 结合起来。以下是需要计算单词中单个单词的程序示例...

回答 1 投票 0

在方法中输出特定的类字段?

我正在编写一个简单的 Spring CRUD 应用程序。我有一个方法应该向用户发出禁令。执行该方法时,应返回有关用户的信息,但不是全部。我只是...

回答 2 投票 0

检查映射是否仅包含一组键的非空值

我有一张地图如下 Map myMap = new HashMap<>(); myMap.put("a", "某事"); myMap.put("b", null); myMap.put("c", "更多&q...

回答 5 投票 0

具有不同对象类型的Jackson(去)序列化哈希图

我目前正在用 Java 编写游戏,在 Jackson 中保存实体数据时遇到问题。我需要使用超类的不同子类对哈希图进行(反)序列化。例如我...

回答 2 投票 0

“HashMap”中关于“modCount”的“易失性”

为什么HashMap不使用volatile来修改modCount,以确保当另一个线程改变Map时,一个线程可以立即知道Map的变化? 片段如下: /** * 次数

回答 2 投票 0

为以结构作为值的动态分配的哈希图释放内存 - C

我已经遵循了一些关于 c 中的哈希图的教程。从代码中你可能可以看出我非常依赖这个实现,它有一个很好的后续视频,他在其中重新访问它以展示他如何...

回答 1 投票 0

Python 中的嵌套 Ruby 哈希

谁能解释一下这段代码在 Ruby 中的作用吗? x = ->(h, k) { h[k] = Hash.new(&x) } @abc = Hash.new(&x) 我已经搜索过,但无法弄清楚到底发生了什么......

回答 1 投票 0

Ruby:嵌套哈希

谁能解释一下这段代码在 Ruby 中的作用吗? x = ->(h, k) { h[k] = Hash.new(&x) } @abc = Hash.new(&x) 我已经搜索过但无法弄清楚到底发生了什么

回答 1 投票 0

使用 Lambda 在 Java 8 中计算频率(专业)

我有一个这样的字符串列表:“na”,“na”,“na”,“uk”,“uk”。我想以这样的方式计算每个元素的频率:如果现有地图的

回答 3 投票 0

为什么Java中的TreeMap不使用Array作为Bucket?

我很好奇并开始学习TreeMap在Java内部是如何实现的。而且,我发现它使用红黑树来保持基于键的条目的排序顺序。 我的追求...

回答 1 投票 0

如何比较两个 HashMap 的对象标识,而不是值标识?

我想比较两个不同的哈希图,尽管它们包含的对象相同。我希望能够分辨出它们何时不同。我如何测试它们的底层对象身份...

回答 1 投票 0

Hashtable.keySet()的顺序?

最近在学习Java,有一个问题。 我了解到 HashMap 和 Hashtable 不保留插入顺序或基于键的顺序。但我遇到过这样的情况

回答 2 投票 0

当我检查行/列中的重复哈希映射时,程序无限期地运行

我正在编写一个数独板生成器。我想到使用哈希映射来确保数字不会在同一行/列中重复。键是一个字符串(“行”/“列”+数字...

回答 1 投票 0

Android - 从 HashMap 获取值

我尝试在Android中搜索HashMap,但遇到问题: 考虑这个例子: HashMap meMap=new HashMap(); meMap.put("Color1","红色"); 我的地图...

回答 10 投票 0

根据预期的键过滤地图

在我的 Clojure Web 应用程序中,我有各种模型名称空间,其函数将映射作为参数,并以某种方式将该映射插入数据库。我希望能够只取出想要的钥匙...

回答 3 投票 0

HashMap 中的向量

我知道如何使用,字符串 我知道如何使用,矢量 但我在使用 HashMap 时遇到问题 #[导出(序列化)] pub 结构 TestStructs { pub ttStrngg:字符串, pub ttVctorr:Vec,...

回答 1 投票 0

如何在 kotlin 中将 HashMap<Int,List<IntArray>> 转换为 HashMap<Int,List<Int>>

例如,我有一个HashMap,其中包含 1 到 {[2,1],[3,1],[4,1]} ,然后我想使用高阶函数将此映射转换为 HashMap 格式,如 1 到 {2,...

回答 1 投票 0

Java 事件系统通用转换为有界通配符

我正在制作自己的事件系统并尝试使其像这样可用。 EventSystem.get(EventClientStart.class) .setCallback((事件) -> { System.out.println("客户端已启动"...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.