问题标签 [collectors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1878 浏览

java - groupingBy和一步过滤

我有一个Stream<String>,我想要一个Map<Integer, String>。让我们调用我的分类器函数getKey(String)- 它可能很昂贵。有时它返回零,这意味着字符串应该被丢弃并且不包含在结果映射中。

所以,我可以使用这段代码:

这首先将不需要的字符串添加到以零为键的 Map 中,然后将其删除。他们可能有很多。有没有一种优雅的方法可以避免首先将它们添加到地图中?

我不想在分组之前添加过滤步骤,因为这意味着执行决策/分类代码两次。

0 投票
4 回答
38356 浏览

java - java 8收集器的问题类型不匹配:无法从列表转换 to List

i was having working code with earlier version of java 8 which i was using to get unique values from list but since i upgraded to JDK 66 its giving me an error

Type m

i was having working code with earlier version of java 8 which i was using to get unique values from list but since i upgraded to JDK 66 its giving me an error

Type mismatch: cannot convert from List<Object> to List<String>

Where res is resultset i am getting from database, not sure what is wrong any idea?


How to handle Recyclerview list item click event

I am working with recyclerview but I am trying to intent to next activity but there is not setonlistitem method can any one tell how to redirect to next activity on click of list item,following is my snippet code can any one help me with that

0 投票
2 回答
783 浏览

lambda - Collectors.toMap 的 mergeFunction 是否允许修改其参数?

我有一个Stream<Map<String, Map<String, String>>>要组合的嵌套映射流(使用外部键;假设内部键是唯一的),方法是转换为条目集流并调用Collectors.toMap(...). 为了确保正确组合具有重复外键的映射,我传递以下BinaryOperator函数toMap(...)

该代码似乎暂时有效,但我觉得我没有Collectors.toMap(...)按预期使用,因为我正在改变累加器和组合器中的值。

这是完整的代码片段:

0 投票
1 回答
387 浏览

java-8 - 如何显式使用顺序收集器

首先断言顺序 == !parallel

Java-8Stream接口提供了两种collect方法:

我需要一个收集器,它按顺序收集(或可变地减少)元素(用例:多个地图(元素可以是地图,递归地)合并,顺序相关)。不需要组合器(Collectors.of方法也需要组合器)。有没有更好的方法以某种方式明确地做到这一点?

  • 使用定制的Collector
  • 没有组合器参数的类似of方法?
  • 来自库的现有方法?

或者不一定是顺序收集器,而是具有严格从左到右组合器的并行方法。

事实上,正确的关键字应该是Folding Collector

0 投票
2 回答
24725 浏览

java - Java 8 Stream API toMap 转换为 TreeMap

我有

我需要将它们转换为

我知道如何使用 HashMap 进行转换

但我需要 TreeMap 与: 键 - 最新消息发送日期第一的用户 值 - 列表按发送日期最新排序

用户类的一部分

用户比较器:

0 投票
1 回答
666 浏览

java-8 - 我们可以转换列表吗> 到地图> 使用 Stream API 的 groupby

我有一个List<Map<String, Object>>这样的列表

使用带有 groupBy 方法的 Stream API salesReportForSoldProperty.stream().collect(Collectors.groupingBy(tags -> tags.get("D"))),我可以获得集合Map<Object, List<Map<String, Object>>>
但是当我尝试创建这个集合的 JSON 时,我得到这样的 Json

这里每个值都是 JSONArray,因为我得到Map<Object, List<Map<String, Object>>>. 有没有办法Map<Object, Map<String, Object>>使用 Stream API 来收集,所以我可以得到一个正确的 JSON(没有 JSONArray 值)

0 投票
1 回答
3700 浏览

java-8 - 如何使用 Java Stream API 删除“-”并修剪地图键的空白

我有一张地图

当我将 Map 转换为 JSON 时,我得到了这个

但是在这里我有一个问题,我不想要 JSON 键中的空格和“-”。那么我们可以通过 JAVA Stream API 解决它,所以它会给我地图的密钥,没有空格和'-'?像键“Sold Third Party”应该是“SoldThirdParty”

0 投票
1 回答
691 浏览

java-8 - 当键与 Java Stream API 重复时如何添加 Map 的内部元素

我有一个List<Map<String, Object>>这样的列表

我正在使用此流 API 方法将此列表转换为 Map

但它抛出了我java.lang.IllegalStateException: Duplicate key的异常,因为我的列表有重复的键

我想添加重复键的内部元素,我想要这样的输出

是否可以通过 Java 流 API?

0 投票
1 回答
891 浏览

java - 无法解析 lambda 参数的类型

所以我正在尝试实现一个自定义收集器,但不幸的是我遇到了一个非常有趣的问题:

所以在上面的代码中,编译器无法解析类型为 elem 对象的任何方法TripResultDTO

不用说该getOutbound方法以红色突出显示,无法解决。TripResultsDTO通过查看似乎被简单地视为Object而不是的实例的智能感觉,这很奇怪TripResultDTO。你知道为什么会发生这种情况吗?

也欢迎以更好的方式做我正在做的事情的任何想法。

0 投票
6 回答
60010 浏览

java - 使用流转换和过滤 Java Map

我有一个想要转换和过滤的 Java 地图。作为一个简单的例子,假设我想将所有值转换为整数,然后删除奇数条目。

这是正确的并且产生:{a=1234, c=3456}

但是,我不禁想知道是否有办法避免调用.entrySet().stream()两次。

有没有一种方法可以同时执行转换和过滤操作, .collect()最后只调用一次?