Java 使用流api获取字符串
我有以下代码:Java 使用流api获取字符串,java,java-8,java-stream,Java,Java 8,Java Stream,我有以下代码: private String categoryId; List<Category> categories = new List<>(); for(String category:categories){ if(category.getName().equals(categoryName)){ categoryId = category.getId(); break; } } 创建新类别时,类别Id是随机分配
private String categoryId;
List<Category> categories = new List<>();
for(String category:categories){
if(category.getName().equals(categoryName)){
categoryId = category.getId();
break;
}
}
创建新类别时,类别Id是随机分配的。
提前感谢。尝试使用以下方法:
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
如果要使用流,可以编写:
categories.stream().filter(c -> {
if (c.getName().equals(categoryName)) categoryId = c.getId()});
这段代码甚至不编译。尝试并向我们提供您的实际代码,我们将能够根据您尝试的内容帮助您
categoryId=categories.stream().filter(category->category.getName().equals(categoryName)).map(category::getCatId.findFirst().orElse(null)代码>@YCF\L您可以更改地图功能吗。它在我的电脑中不工作。请使其正常工作simpler@Krissh你是说.map(category->category.getCatId())
@mallikarjun是的,我忘了用break
categories.stream().filter(c -> {
if (c.getName().equals(categoryName)) categoryId = c.getId()});