我使用代碼波紋管,以檢查是否在數組數爲範圍:如果數字在範圍內,是否有更快的方法進行比較?
private static final int page_red = 130;
private static final int page_green = 140;
private static final int page_blue = 135;
private boolean isPageColor(double[] color) {
return color[0] >= page_red - 25 && color[0] <= page_red + 25
&& color[1] >= page_green - 25 && color[1] <= page_green + 25
&& color[2] >= page_blue - 25 && color[2] <= page_blue + 25;
}
有一個更快的方法(更高的性能)這樣做呢?
看你的意見(尤其是@VikrantKashyap和@TDG)我做編輯:
private static final int delta = 25;
private static final int page_red_min = page_red - delta;
private static final int page_green_min = page_green - delta;
private static final int page_blue_min = page_blue - delta;
private static final int page_red_max = page_red + delta;
private static final int page_green_max = page_green + delta;
private static final int page_blue_max = page_blue + delta;
private boolean isPageColor(double[] color) {
return color[0] >= page_red_min && color[0] <= page_red_max
&& color[1] >= page_green_min && color[1] <= page_green_max
&& color[2] >= page_blue_min && color[2] <= page_blue_max;
}
我認爲這是一個有點快,現在(因爲較少+的 - 操作)。
如果你的'int'值是固定的那麼常數那麼你爲什麼不使用值而不是'page_red - 25'或.... @VladimirKulyk –
@VikrantKashyap好點。這只是一個例子。問題仍然是打開的(最快的方法是什麼) –
您可以使用apache常用驗證器作爲替代,['isInRange()'](https://commons.apache.org/proper/commons-validator/apidocs /org/apache/commons/validator/routines/DoubleValidator.html#isInRange(double,%20double,%20double))like'isInRange(color [0],page_red,page_blue)'。 –