gpt4 book ai didi

java - 使用 Java 8 流创建 Collection

转载 作者:行者123 更新时间:2023-11-30 06:06:31 24 4
gpt4 key购买 nike

我有课

class ColumnTags {
String Name;
Collection<String> columnSemanticTags;

// constructor and getter and setters and other relevant attributes
}

我想从给定名称的 ColumnTags 列表中获取 columnSemanticTags。

对应的方法如下

public Collection<String> getTags(String colName, List<ColumnTags> colList) 
{
Collection<String> tags = new ArrayList();
for(ColumnTag col:colList){
if(colName.equals(col.getName())){
tags = col.getColumnSemanticTags();
break;
}
}
return tags;
}

想要将for循环转换为java流。我已经尝试过

   tags = colList.stream().filter(col -> colName.equals(col.getName()))
.map(col -> col.getColumnSemanticTags())
.collect(Collectors.toCollection());

我收到编译错误。我不知道供应商应该是什么。尝试过 ArrayList::new 。我也尝试将其转换为 ArrayList ,但没有成功。有人可以建议我我认为错误是什么,或者处理这种情况的预期方法应该是什么。有了解决方案,有人可以解释为什么 .collect() 是解决该解决方案的错误方法。

最佳答案

public Collection<String> getTags(String colName, List<ColumnTags> colList) {
return colList.stream().filter(col -> colName.equals(col.getName()))
.map(col -> col.getColumnSemanticTags())
.findFirst().orElse(new ArrayList<>());
}

关于java - 使用 Java 8 流创建 Collection<Stream>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43875598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com