如何按VIBGYOR顺序从彩虹中排序给定的一组颜色。假设我按以下顺序输入七种颜色{红,蓝,绿,黄,蓝,紫,橙},我应该将输出打印为{紫,蓝,蓝,绿,黄,橙,红},无论我给出的顺序是什么,输出都应该是上面的。有没有人能推荐我在java程序中实现这个功能?
谢谢,
-Vijay
发布于 2010-06-09 20:08:27
我假设你要么得到少于7个输入,要么偶尔得到一些值的倍数。如果你总是得到完全相同的输入,只是顺序不同,那么问题就微不足道了。:-)
您可能希望考虑使用与每种颜色对应的枚举,并将输入转换为这些枚举的数组。枚举的值应该反映输出顺序。使用它对数组进行排序,然后输出枚举名称。
发布于 2010-06-09 20:02:41
创建一个表示color
Comparable
接口的类(可能通过使用getHSBColor
)。基本上,这意味着“确保一种颜色可以与任何其他颜色进行比较”。
List
中并使用Collections.sort
(或一个数组并使用
https://stackoverflow.com/questions/3005537
复制相似问题