One more optimal solution that I have seen and used is to store all of these values in a map (constant time complexity for lookups):
public static Map<Integer, Integer> colorMap = new HashMap<Integer, Integer>();
static
{
colorMap.put(0, Color.rgb(240, 255, 255));
colorMap.put(1, Color.BLACK);
colorMap.put(2, Color.BLUE);
colorMap.put(3, Color.rgb(165, 42, 42));
colorMap.put(4, Color.rgb(255, 127, 50));
colorMap.put(5, Color.rgb(00, 255, 255));
colorMap.put(6, Color.rgb(255, 00, 255));
colorMap.put(7, Color.rgb(255, 215, 00));
colorMap.put(8, Color.GRAY);
colorMap.put(9, Color.GREEN);
colorMap.put(10, Color.rgb(173, 255, 47));
colorMap.put(11, Color.rgb(00, 255, 00));
colorMap.put(12, Color.MAGENTA);
colorMap.put(13, Color.rgb(80, 00, 00));
colorMap.put(14, Color.rgb(80, 80, 00));
colorMap.put(15, Color.rgb(255, 165, 00));
colorMap.put(16, Color.rgb(255, 192, 203));
colorMap.put(17, Color.rgb(80, 00, 80));
colorMap.put(18, Color.RED);
colorMap.put(19, Color.rgb(244, 196, 30));
colorMap.put(20, Color.rgb(192, 192, 192));
colorMap.put(21, Color.rgb(238, 82, 238));
colorMap.put(22, Color.WHITE);
colorMap.put(23, Color.YELLOW);
}
public static int getColor(int lookup)
{
int color = colorMap.get(lookup);
return color == null ? 0 : color;
}