Sam*_*azi 1 java collections java-8 java-stream
我喜欢上课
public class RoleAccess {
private String roleId;
private List<String> apiIdList;
public String getRoleId() {
return roleId;
}
public void setRoleId(String roleId) {
this.roleId = roleId;
}
public List<String> getApiIdList() {
return apiIdList;
}
public void setApiIdList(List<String> apiIdList) {
this.apiIdList = apiIdList;
}
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列表,它将添加来自roleaccess的所有apiIdlist
List<String> apiIdList = new ArrayList<>();
for (RoleAccess roleAccess : roleAccessList) {
if (roleAccess.getApiIdList() != null) {
apiIdList.addAll(roleAccess.getApiIdList());
}
}
Run Code Online (Sandbox Code Playgroud)
我们如何处理流api或哪个是最佳解决方案呢?
我检查了正常的对象列表列表,但我想要列出的对象和内部列表列表我试过这个
List<String> apiIdList = roleAccessList.stream()
.map(RoleAccess::getApiIdList)
.collect(ArrayList::new, List::addAll, List::addAll);
Run Code Online (Sandbox Code Playgroud)
使用flatMap而不是map:
List<String> apiIdList = roleAccessList.stream()
.flatMap(e -> e.getApiIdList().stream())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
请查看链接以获取更多信息flatMap.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |