- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 HashBasedTable ( com.google.common.collect.HashBasedTable
),格式如下: Table<DateTime, C, V>
. DateTime
来自org.joda.time.DateTime
.
我想根据特定的时间间隔对条目进行分组。例如,如果条目 A 和 B 彼此相差在 100 毫秒以内,我想将它们组合在同一行中。我可以选择在插入时以及在处理过程中插入后执行此操作。我应该如何以最有效的方式执行此操作?
引用链接:
https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/HashBasedTable.html
https://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html
最佳答案
这是一个例子。
Table<DateTime, String, String> yourTable = // your HashBasedTable;
Map<DateTime, List<Map<String, String>>> groupedRows = yourTable.rowMap()
.entrySet()
.stream()
.collect(Collectors.groupingBy(e -> e.getKey().minusMillis(e.getKey().getMillisOfSecond() % 100),
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
为了使用流,我首先调用 rowMap
得到 Map<DateTime, Map<C, V>>
,这是流媒体。流是映射条目。我按截断到最接近 100 毫秒的日期时间对它们进行分组。我截断的方式:如果时间是 6150 毫秒,e.getKey().getMillisOfSecond() % 100
给我 50 毫秒,我减去它得到 6100 毫秒。因此,从 6100 到 6199 毫秒的所有时间都组合在一起。在分组中,我使用下游收集器从结果中的内部列表的条目中挑选值(Map<C, V>
s)。
免责声明:我没有安装 Guava/Google 核心库,所以我没有测试所有内容。
关于java - 根据 DateTime 行对 HashBasedTable 条目进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55111260/
现在,我将一些数值存储为 HashBasedTable 的值。当我想改变它的数量时,我需要这样写: table.put("AS", "BS", table.get("AS", "BS") == nul
我需要一种方法来为一个值保留两个键——这正是 Guavan 的 HashBasedTable 所做的。问题是它在遍历值时不保持插入顺序。有什么优雅的解决方案可以让它工作吗?它不一定是 Guava ,但
如何获取 HashBasedTable 中每行的所有列?我是这样初始化的: Table table = HashBasedTable.create(); 我想对映射到每一行的所有值求和。 最佳答案 如
我有以下设置。 Table store = HashBasedTable.create(); int i = 0, j = 0; for (List stack_i : stacks) { j =
我有一个多级 map 需求,我正在使用 Guava Table 。更准确地说是 HashBasedTable。 由于我的代码需要对此数据集进行大量自定义处理,因此我想实现一个派生类,例如EventAc
我计划使用 table guava 实现 3D HashMap 。我下载了它并且能够导入文件。我的要求如下 我手头有以下文件,我只需要相应地聚合文件,这将在下一步中显示。 A100|B100|3 A1
我有一个返回 HashBasedTable 的方法(来自 Google 的 Guava 项目:https://code.google.com/p/guava-libraries/wiki/NewCol
我有一个 HashBasedTable ( com.google.common.collect.HashBasedTable ),格式如下: Table . DateTime来自org.joda.ti
我创建并填充了一个 Guava Table使用以下代码: Table table = HashBasedTable.create(); table.put("A", "B", 1); table.pu
执行以下代码时出错, Caused by: java.lang.IllegalAccessError: tried to access class com.google.common.collect.
执行以下代码时出错, Caused by: java.lang.IllegalAccessError: tried to access class com.google.common.collect.
我正在尝试在 spring xml 配置文件中创建和填充 guava HashBasedTable,但我无法做到。 我的表格是这样的: Table myTable; 我已经在我的 xml 中试过了,但
我有HashMaphm1和 Guava 表Table employeeYearsOfService HashMap hm1 fatima |0.97 AT&T |0.96 表员工服务年数 Goo
通过返回 ImmutableTable 的方法处理字符串列表。例如ImmutableTable process(String item) { /*...*/} . 收集结果,即合并所有结果(单个表可能
我是一名优秀的程序员,十分优秀!