J'utilise le code ci-dessous pour vérifier si les numéros de tableau est dans la gamme:Existe-t-il un moyen plus rapide de comparer si le nombre est dans la plage?
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;
}
Y at-il un moyen plus rapide (plus de performance) pour le faire?
regardant vos conseils (en particulier @VikrantKashyap et @TDG) J'ai fait modifier:
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;
}
Je pense qu'il est un peu plus vite maintenant (en raison de moins + - opérations).
si vos valeurs 'int' sont fixes Constante alors pourquoi n'utilisez-vous pas la valeur au lieu de' page_red - 25' ou .... @VladimirKulyk –
@VikrantKashyap bon point. C'est juste un exemple. La question est toujours ouverte (quel est le moyen le plus rapide de le faire) –
Vous pouvez utiliser le validateur commun apache comme alternative, ['isInRange()'] (https://commons.apache.org/proper/commons-validator/apidocs /org/apache/commons/validator/routines/DoubleValidator.html#isInRange(double,%20double,%20double)) comme 'isInRange (couleur [0], page_red, page_blue)'. –