我试图制作一个随机的颜色生成器,但我不希望在arrayList中显示类似的颜色
public class RandomColorGen {
public static Color RandColor() {
Random rand = new Random();
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();
Color c = new Color(r, g, b, 1);
return c;
}
public static ArrayList<Color> ColorList(int numOfColors) {
ArrayList<Color> colorList = new ArrayList<Color>();
for (int i = 0; i < numOfColors; i++) {
Color c = RandColor();
if(similarcolors){
dont add
}
colorList.add(c);
}
return colorList;
}
}
我真的很困惑,请帮助:)
在Color类中实现相似方法。
然后使用:
public static ArrayList<Color> ColorList(int numOfColors) {
ArrayList<Color> colorList = new ArrayList<Color>();
for (int i = 0; i < numOfColors; i++) {
Color c = RandColor();
boolean similarFound = false;
for(Color color : colorList){
if(color.similarTo(c)){
similarFound = true;
break;
}
}
if(!similarFound){
colorList.add(c);
}
}
return colorList;
}
要实现likeTo:
看一下RGBA颜色空间中的颜色相似度/距离,并以编程方式找到相似的颜色。一种简单的方法可以是:
((r2-r1)2 +(g2-g1)2 +(b2-b1)2)1/2
和:
boolean similarTo(Color c){
double distance = (c.r - this.r)*(c.r - this.r) + (c.g - this.g)*(c.g - this.g) + (c.b - this.b)*(c.b - this.b)
if(distance > X){
return true;
}else{
return false;
}
}
但是,您应该根据类似的想象找到X。
问题内容: 我想更改按钮状态为不同的状态。我这样尝试: 但是在第一个按钮println中,打印nil且背景变为红色;在第二个按钮println中,打印“ Optional(UIDeviceRGBColorSpace 1 0 0 1)”,并且颜色不变 问题答案: 您不使用运算符比较颜色。您可以这样操作,并且需要打开可选的颜色: 另外,请删除分配声明中的无关内容。它应该是:
本文向大家介绍我们如何比较Java中的StringBuilder和StringBuffer?,包括了我们如何比较Java中的StringBuilder和StringBuffer?的使用技巧和注意事项,需要的朋友参考一下 该StringBuffer的 对象通常是安全的使用多线程环境中多个线程可能试图访问同一StringBuffer的 同时对象。该StringBuilder的 是用于替换线程安全Str
问题内容: 到目前为止,我一直在程序中使用运算符比较所有字符串。但是,我遇到了一个错误,将其中一个更改为错误,并修复了该错误。 是==坏?什么时候应该使用它,不应该使用它?有什么不同? 问题答案: 测试引用是否相等(它们是否是同一对象)。 测试值是否相等(在逻辑上是否为“相等”)。 在调用之前进行检查,因此您不必(在JDK7起可用,在Guava中也可用)。 因此,如果要测试两个字符串是否具有相同的
此外,我重写了hashCode()以: 现在,即使两个对象都是@dog0,print语句也会打印false。想知道为什么控制台:
问题内容: 我已经看到了同时实现Comparable和Comparator的类。这是什么意思?为什么我要一个使用另一个? 问题答案: 下面的文字来自Comparator vs Comparable 可比 可比较的对象能够将自己与另一个对象进行比较。类本身必须实现java.lang.Comparable接口,以便能够比较其实例。 比较器 比较器对象能够比较两个不同的对象。该类不是在比较其实例,而是在
问题内容: 如何在Java中比较两者之间的日期? 例: date1是 date2是今天 date3是 总是大于和今天始终。如何验证今天的日期是否在和之间? 问题答案: 日期有之前和之后的方法,可以相互比较,如下所示: 进行包容性比较: 你也可以尝试一下Joda-Time,但请注意: Joda-Time是Java SE 8之前的Java的事实上的标准日期和时间库。现在,要求用户迁移到java.tim