我希望重构一些代码中使用流的方式。第一个例子是我目前的做法。第二个例子是我试图使它看起来像什么。
Set<String> results = new HashSet<String>();
someDao.findByType(type)
.stream()
.forEach(t-> result.add(t.getSomeMethodValue()) );
看起来像这样吗?如果是这样,我该如何做呢?
Set<String> results = someDao.findByType(type)
.stream()
.collect( /* ?? no sure what to put here */ );
用途Collectors.toSet
:
Set<String> results = someDao.findByType(type)
.stream()
.map(ClassName::getValue)
.collect(Collectors.toSet());
给定需要排序和分组的对象列表: 我想将列表分组为列表中的列表,按widgetCode分组,每个子列表的元素按照它们在原始列表中遇到的顺序排列。我知道可以使用收集器将它们分组到列表映射中: 我并不认为键是理所当然地排序的,所以我采取了额外的步骤,将整个内容加载到SortedMap类型中: 我知道我可以通过使用.values()从sortedWidgetMap获取集合,而且我猜它是一个有序集合,因为它
问题内容: 我有以下对象和地图: 我想将地图转换成另一个地图。结果图的键是输入图的键。结果映射的值是My对象的属性“名称”,按优先级排序。 该 排序 和提取的名字是没有问题的,但我不能把它放到结果地图。我使用旧的Java 7方法进行操作,但是可以使用流API会很好。 有人知道吗?我试过了,但是被卡住了: 问题答案: 本质上,您将流式传输每个条目集并将其收集到新映射中。要计算新地图中的值,请从旧地图
问题内容: 对于任意长度的子列表,将列表切成切片的子列表节列表的最简单,合理有效的方法是什么? 例如,如果我们的源列表是: 我们的子列表长度为3,然后我们寻求: 同样,如果我们的子列表长度为4,则我们寻求: 问题答案: [input[i:i+n] for i in range(0, len(input), n)] # Use xrange in py2k 块的长度在哪里。 由于您没有定义当不能将中
我有一个订单列表,我想使用Java8Stream和Collectors按用户分组。GroupingBy: 这将返回包含用户和订单列表的映射: 我不需要整个对象User,只需要它的username字段,它是一个字符串,所以我想获得如下内容: 我试图使用stream.map将用户映射到username字段,但无法正确实现。我怎样才能尽可能简单地做到这一点呢?
我有一个lambda表达式,我想在其中创建一个对象列表,但我得到了错误 错误 我希望作为lambda表达式的返回类型。我怎样才能做到呢?