我有以下代码:
private String categoryId;
List<Category> categories = new List<>();
for(String category:categories){
if(category.getName().equals(categoryName)){
categoryId = category.getId();
break;
}
}
我想在这里使用流api获取categoryId。我的类别类别如下。
class Category{
private String name;
private String id;
// gettters and setters.
}
创建新类别时,会随机分配类别ID。 预先感谢。
答案 0 :(得分:4)
尝试使用此:
categoryId = categories.stream()
.filter(category -> category.getName().equals(categoryName))//filter by name
.map(Category::getId) //get only the ids
.findFirst() //return just the first result
.orElse(null); //if no result then return null
答案 1 :(得分:0)
如果要使用流,可以编写:
categories.stream().filter(c -> {
if (c.getName().equals(categoryName)) categoryId = c.getId()});