ele*_*ect 5 java java-8 java-stream
我对流很陌生。
我想流式传输数组列表geometries EC_Geometry,如果EC_Geometry元素不存在(或者最好equals永远不返回true),那么我添加它。
public void init(GL3 gl3, EC_Mesh mesh) {
geometries.stream()
.filter(geometry -> mesh.getGeometry().equals(geometry))
.findAny()
.orElse(..?);
}
Run Code Online (Sandbox Code Playgroud)
但我被困在最后一行
如何使用流解决它?
请注意,这equals是我编写的一种检查几何形状是否相同的方法(即:三角形是否对应)
orElse即使未使用返回的值,也将始终运行,因此最好orElseGet在此处使用,只有在未找到任何内容时才会运行。
geometries.stream()
.filter(geometry -> mesh.getGeometry().equals(geometry))
.findAny()
.orElseGet(() -> {
geometries.add(mesh.getGeometry());
return mesh.getGeometry();
});
Run Code Online (Sandbox Code Playgroud)