【问题标题】:Hashmap not storing entire base64 stringHashmap 不存储整个 base64 字符串
【发布时间】:2017-04-21 07:28:39
【问题描述】:

我有一个 base64 编码的字符串并将其插入到 hashmap 中,但存储在 hashmap 中的值只是 base64 字符串的 10%。在调试时,我可以确认字符串具有整个值。只有当我将字符串“放入”hashmap 时,它才存储其中的 10%。

Hashmap<String, String> hashmap = new Hashmap<>();
String base64 = bitmapToString(mBitmap); // function is working properly and Im getting the entire string.
hashmap.put("image", base64); // Storing just 1005 characters for every image

hashmap 值是否有任何限制?它总是存储不超过 1005 个字符的字符串。 仅供参考,此代码用于 IntentService

【问题讨论】:

  • @Tilak 将某人指向 Google 在这里没有帮助
  • 地图不“存储字符串”,它只保留对原始字符串的引用。你描述的不可能==>minimal reproducible example.
  • 哈希图不存储字符串,而只是一个字符串引用,所以我看不出它可以以某种方式截断它。如何确定只有 1005 个字符?
  • @TilakMaddy Google 不提供任何有关哈希映射值限制的信息。其中大部分与 hashmap 大小和 key 的字符长度有关。与价值无关。
  • 可能是你的调试器的限制,只显示字符串的第一个字符?

标签: java android


【解决方案1】:

这是 Android Studio 调试器的一个限制(?),它在查看所有键和值时仅显示大约 1000 个字符,但如果您在哈希图中展开一个元素,则它会显示整个字符串。这是我的自满,我感谢@assylias 的建议。

【讨论】:

  • 几天前我在将 Base64 数据发送到服务器时也遇到了类似的问题。而且在服务器上,字符串确实没有满。所以不要认为它是唯一的调试器问题。
猜你喜欢
  • 1970-01-01
  • 2010-10-20
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 2022-12-01
  • 2017-05-09
相关资源
最近更新 更多