【问题标题】:Java HashMap, count Same key entriesJava HashMap,计数相同的键条目
【发布时间】:2011-10-12 16:06:43
【问题描述】:

所以我正在开发一个 android 项目,而现在,我正在动态填充我创建的日历。目前,随着动态生成的每个单元格,它会打开数据库,调用以计算某个日期的条目数,然后关闭数据库。

这意味着每次加载日历或用户更改月份时,都会执行最少 28 次、最多 42 次数据库打开/关闭调用来填充视图。

为了解决这个问题,我想到了使用哈希映射,执行一个填充游标的数据库调用,然后遍历游标,将其弹出到哈希映射中。

在我看来,最简单的方法是使用数据库中的格式化日期作为 HashMap 的键,然后当我需要知道有多少条目时,是否可以知道有多少条目有相同的键吗?

如果没有,最好的,我的后备想法是......

遍历光标, 密钥存在吗? -> 否,然后使用 int 值创建它 -> 是的,然后将该条目的值加 1?

谢谢大家!

【问题讨论】:

    标签: java android sqlite hashmap


    【解决方案1】:

    要获取所有重复条目,只需检索键的List 并使用SetHashSet 进行处理。 你可以参考这个问题:Java: Detect duplicates in ArrayList?

    【讨论】:

    • 我的问题解决了。使用 Hashmaps,当您使用 Put() 函数时,如果 Key 已经存在,它会覆盖该键。这意味着,我执行了检查以查看它是否存在,如果存在,我获取该值,然后放回增加的值。干杯
    【解决方案2】:

    我想我会修改我的查询以按日期分组,然后将这些结果放入哈希图中。所以,假设你有一些事件表(这是 oracle 语法)

      select to_char(event.date, 'yyyymmdd'), count(*)
      from event
      group by to_char(event.date, 'yyyymmdd')
    

    然后,您可以将其放入哈希映射或迭代结果集。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2021-01-10
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      相关资源
      最近更新 更多