Nat*_*H06 1 java foreach lambda java-8
说我有这门课
public class MovieCharacter {
private String name;
public String getName() { return name ; }
public String setName(String name) { this.name = name; }
}
Run Code Online (Sandbox Code Playgroud)
我正在运行测试并有一个Set,我想使用Lambda来梳理每个对象,看它是否包含Name所需的字符串.如果找到名称,则布尔值跳转到"true".找到它之后,我不希望布尔值再次改变.
Set<MovieCharacter> mySet // assume this Set has previously been created and
// contains 1,000's of MovieCharacter
boolean hasName = false;
mySet.forEach( i -> i.getName().equals("Darth Vader")) // add here?
assertTrue(hasName);
Run Code Online (Sandbox Code Playgroud)
我知道我很接近,但是如何完成lambda线的关闭,以便如果该组包含一个MovieCharacter,其中.getName()返回"Darth Vader",则布尔值将被设置为true?但是,如果我正在检查的项目没有,它只是继续前进?
谢谢!
您描述的行为正是该anyMatch方法的设计目标:
boolean hasName = mySet.stream().anyMatch(c -> c.getName().equals("Darth Vader"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |