使用IntStream访问对象数组

时间:2014-12-04 09:30:04

标签: java java-stream

我有一个RGB对象数组,包含R值,G值和B值,它们组合起来表示一种颜色。我需要使用IntStream来运行数组的元素并对每个元素进行计算。如何使用IntStream执行此操作?

我的数组定义如下:

RGB[] pixels;

将RGB类定义为:

class RGB {
  public int R, G, B;

  RGB(int r, int g, int b) {
    R = r;
    G = g;
    B = b;
  }
}

提供的提示说使用IntStream.range()给我一系列索引。

1 个答案:

答案 0 :(得分:1)

您可以流式传输数组索引:

IntStream.range(0, pixels.length)
         .map(i -> someCalculationOn(i, pixels[i]));

但如果你不需要someCalculation中的索引,那么流式传输数组可能会更好:

Arrays.stream(pixels).map(rgb -> someCalculationOn(rgb));