如何将下面的for循环with return语句转换为lambda表达式或流with filter。
for(PhysicianData d : physicianDataList)
{
if(d.getPhysicianName().equals(physicianName))
{
return true;
}
}
使用它:
class PhysicianData {
String physicianName;
public void setPhysicianName(final String physicianName) {
this.physicianName = physicianName;
}
public String getPhysicianName() {
return physicianName;
}
}
@Test
void test() {
PhysicianData one = new PhysicianData();
one.setPhysicianName("A");
PhysicianData two = new PhysicianData();
two.setPhysicianName("B");
List<PhysicianData> physicianDataList = List.of(one, two);
assertEquals(forMethod("A", physicianDataList), streamMethode("A", physicianDataList));
}
private boolean forMethod(final String physicianName, final List<PhysicianData> physicianDataList) {
for (PhysicianData d : physicianDataList) {
if (d.getPhysicianName().equals(physicianName)) {
return true;
}
}
return false;
}
private boolean streamMethode(final String physicianName, final List<PhysicianData> physicianDataList) {
return physicianDataList.stream().anyMatch(x-> x.getPhysicianName().equals(physicianName));
}
由于您正在寻找与名称相等检查匹配的任何内容(任何操作词),我建议查看Stream::anyMatch()
方法,以及它的其他对应的Stream::allMatch()
和Stream::noneMatch()
。上面的代码可以重写为:
boolean result = physicianDataList
.stream()
.anyMatch(physicianData -> physicianData.getPhysicianName().equals(physicianName);
使用anyMatch()
boolean result = physicianDataList.stream()
.map(PhysicianData::getPhysicianName) // Stream of names
.filter(Objects::nonNull) //Skip nulls
.anyMatch(name -> name.equals(physicianName));
问题内容: 我有一个二维布尔数组’poorSignal’,需要编写一个返回网格的方法,如果数组上的某个点为true,则显示X,如果为false,则显示O。这是我的代码: 当我编译时,它在方法的最后一行给出了“丢失的返回语句”。我也不确定在打印数组时’return“ \ n”是否可以添加新行。 这是一个分配问题,所以我不能直接打印它,也不能仅打印布尔值-它必须是产生网格的方法。 问题答案: 编译器无
下面是我的普通for循环,我想重构相同的代码以使用java8 IntStream。 下面是经过重构的版本 但在返回时会出现错误,如上图所示。 错误:意外的返回值 如何以恰当的方式重构上述代码?
问题内容: 现在,父级for循环()在第一个findOne触发之前完成,因此,这仅循环通过repliesIDsArray..asynchronous。的最后一个元素。 此代码集的承诺版本的正确语法是什么?Promisification的新手,想知道如何开始Promisify +遍历数组+解释if语句。 蓝鸟是必需的,并且被调用。 问题答案: 正如本杰明所说,不要使用循环,而应使用(或) 在此处查看
我得到的错误是“缺少return语句”,代码如下: 有人能帮帮我吗?多谢.
通常都听到别人说,计算机很牛逼,很聪明,其实计算机一点都不聪明,光是你要跟他沟通,都会气 shi 你,聪明的是在写程序的你。 写程序就是跟计算机沟通,告诉它要做什么。 竟然是这样,那么肯定缺少不了一些沟通逻辑。比如你要告诉计算机在什么情况下做什么?或者在哪个时间点做什么? 这都需要用到逻辑判断。这一章节,主要就是说这个。 目录
问题内容: 因此,我正在为不和谐而开发一个聊天机器人,现在正在开发一个可以用作待办事项列表的功能。我有一个命令可以将任务添加到列表中,并将它们存储在字典中。但是,我的问题是以更易读的格式返回列表(参见图片)。 任务存储在一个称为中。但是,为了使bot实际发送消息,我需要使用一条语句,否则它将仅将其打印到控制台而不是实际的聊天记录(参见图片)。 这是我尝试解决的方法,但是由于我使用了for循环,因此