我有以下代码,它使用Stream API来查找卡路里超过300的集合中的前3个元素的名称:
List<Dish> dishes = ....
List<String> unhealthyDishes = dishes.stream()
.filter(dish -> dish.getCalories() > 300)
.map(dish -> dish.getName())
.limit(3)
.collect(Collectors.toList());
在传统的基于迭代器的命令式方法中,我可以保留结果的计数,因此一旦我得到所需数量的元素,就可以退出迭代循环。但是上面的代码似乎贯穿了集合的整个长度。我如何停止这样做,并在得到我需要的3个元素后停止?
你怎么知道它也检查其他元素?我刚刚设置了这个小测试:
String[] words = {"a", "a", "a", "aa"};
List<Integer> shortWords = Arrays.stream(words)
.filter(word -> {
System.out.println("checking " + word);
return word.length() == 1;
})
.map(String::length)
.limit(3)
.collect(Collectors.toList());
System.out.println(shortWords);
输出结果是:
checking a
checking a
checking a
[1, 1, 1]
我有一个KStream与用户点击和使用userID作为关键也包含用户详细信息的KTable也使用userID作为关键。KStream和KTable都有一些分区,使用相同的分区策略和相同的键。 当我在这两个之间使用左连接时,大多数点击事件都没有与用户详细信息匹配,有一些匹配。但是当我用GlobalKTable更改KTable时,这些缺失的匹配会消失所有必需的用户点击都富含用户详细信息。 什么会导致这
这个函数很简单,关键是执行完后,comment的变量值会保存。 push -m '1th' 函数调用完成了,看看 变量的值,如何自动清除呢?我不甘心写成下面的形式 程序很大的话,unset将是一个很多的行。
在Java8的Streams中,我知道如何基于谓词过滤集合,并处理谓词为true的项。我想知道的是,如果谓词仅将集合划分为两个组,那么是否可以通过API基于谓词进行过滤,处理过滤结果,然后立即连接调用以处理过滤器排除的所有元素? 例如,考虑以下列表: 是否有可能做到: 或者我只需对过滤的项目执行过程,然后调用原始列表上的和,然后处理剩余的项目? 谢谢
如何在 postman 中验证响应中的所有数据返回 id、名字、姓氏等的结果数量 下面是响应的样子: 我想验证两件事: 1)响应返回id,first_name,last_name,电子邮件 2)所有的first_name都等于“Sebastian ”,不管只有一个结果还是100个结果 这是我尝试过的,但它只适用于一个结果:
问题内容: 我需要查询里面有很多在它的数据的Sybase数据库,并希望设置限制,因此DB后10个结果停止查询。 关键的是性能,因此,如果找遍了所有结果,然后再回到过去的10个结果将是没有用的。 提前致谢 问题答案: 我相信你可以做一个,然后再在这个环节中的所有查询,直到进一步的将返回不超过10行。正如评论指出,这会影响 所有 在会议之后的查询(不只是S ^!),直至关闭(通过设置为0),或设置不同
问题内容: 我使用的是SQL Server 2005 Service Pack2(SP2)(v9.0.3042),那里发布的解决方案对我不起作用。我尝试使用两个连接字符串。我的代码中有一个被注释掉了。 我意识到我可以将所有结果存储在内存中的List或ArrayList中,然后将其返回。我已经成功地做到了,但这不是这里的目标。目标是能够在结果可用时流式传输。 使用我的SQL Server版本可以吗?