Java for循环迭代和列出颜色
在此代码中Java for循环迭代和列出颜色,java,for-loop,colors,Java,For Loop,Colors,在此代码中 int[] values = new int[] {0, 32, 64, 96, 128, 160, 192, 224, 255}; for (int r = 0; r < values.length; r++){ for (int g = 0; g < values.length; g++){ for (int b = 0; b < values.length; b++) {
int[] values = new int[] {0, 32, 64, 96, 128, 160, 192, 224, 255};
for (int r = 0; r < values.length; r++){
for (int g = 0; g < values.length; g++){
for (int b = 0; b < values.length; b++) {
System.out.println("Colors are: " + values[r]+ ","+values[g]+ ","+values[b]);
int[]value=newint[]{0,32,64,96,128,160,192,224,255};
对于(int r=0;r
我有一个颜色列表,但它们不是有序的:我希望将这个for循环更改为从白色到黑色,或相反,从黑色到白色的有序颜色列表
如何改变这个循环
非常感谢您需要:
Color
类Color
上执行compariable
,从而准确确定所需的颜色顺序TreeSet
Color
类Color
上执行compariable
,从而准确确定所需的颜色顺序TreeSet
由于颜色本质上是三维实体,因此不太清楚如何将其顺序线性化,因此您必须做出一些妥协。我会这样写
int[] values = new int[]{0, 32, 64, 96, 128, 160, 192, 224, 255};
SortedMap<Long, Color> colours = new TreeMap<>(Collections.reverseOrder());
for (int r : values) {
for (int g : values) {
for (int b : values) {
long brightness = (r + g + b) / 3;
long colourScore = (brightness << 24) + (r << 8) + (g << 16) + b;
colours.put(colourScore, new Color(r,g,b));
}
}
}
for (Color color : colours.values()) {
System.out.println(color);
}
我会这样写
int[] values = new int[]{0, 32, 64, 96, 128, 160, 192, 224, 255};
SortedMap<Long, Color> colours = new TreeMap<>(Collections.reverseOrder());
for (int r : values) {
for (int g : values) {
for (int b : values) {
long brightness = (r + g + b) / 3;
long colourScore = (brightness << 24) + (r << 8) + (g << 16) + b;
colours.put(colourScore, new Color(r,g,b));
}
}
}
for (Color color : colours.values()) {
System.out.println(color);
}
已经是这样了:白色=(0,0,0)是第一位,黑色=(255255)是最后一位。你需要更具体地说明你想要什么顺序。你所说的“有序颜色”是什么意思?像彩虹一样的顺序?是的,我的意思是从brigther(白色)开始然后将暗度增加到黑色,例如,白色、黄色、橙色、红色、棕黑色。那么亮度相同的颜色呢?你想按特定的顺序排列吗?@Peter Lawrey:不需要特定的顺序,我只需要一个从白色到黑色的有序颜色的综合列表。已经是这样了:白色=(0,0,0)是第一个,黑色=(255255)是最后一个。你需要更具体地说明你想要什么样的顺序。你所说的“有序的颜色”是什么意思?像彩虹一样的顺序?是的,我的意思是从Brighter(白色)开始然后将暗度增加到黑色,例如,白色、黄色、橙色、红色、棕黑色。那么亮度相同的颜色呢?你想按特定的顺序排列吗?@Peter Lawrey:不需要特定的顺序,我只需要一个从白色到黑色的有序颜色的综合列表。+1但可能会给G最高的意义E,因为它在光谱的中间,眼睛对它有最大的敏感性?“Peter Lawrey:非常感谢你的帮助!+ 1,但是也许给G最高的意义,因为它在光谱的中间,眼睛对它有最大的敏感度?”Peter Lawrey:非常感谢你的帮助。