假设我有以下三个数组:
int r[] = {255,255,255};
int g[] = {0,0,0};
int b[] = {255,255,255};
所有阵列 将具有相同的长度 .
我想将它们转换为类型为 的对象数组颜色 :
public class Color {
int r,g,b;
public Color(int r, int g, int b) {
this.r = r;
this.g = g;
this.b = b;
}
}
Color[] arr = new Color[3];
其中每个索引将包含来自 3 个数组的相同索引的 r,g,b。例如,让我们说
Color[1] = new Color(r[1],g[1],b[1]);
我如何使用 Java Streams 做到这一点?
代码的 for 循环变体是:
Color arr[] = new Color[r.length];
for(int i=0;i<r.length;i++) {
Color c = new Color(r[i],g[i],b[i]);
arr[i] = c;
}
有没有办法使用流来做到这一点?
最佳答案
IntStream.range
+ mapToObj
然后累积到一个数组:
IntStream.range(0, r.length)
.mapToObj(i -> new Color(r[i], g[i], b[i]))
.toArray(Color[]::new);
关于java - 使用 Streams 将 3 个数组转换为 1 个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61961257/