我看过这段代码,不确定它如何与compareTo一起使用。 有人可以指导我了解它的工作原理吗?
public enum Test
{
POTATO("Potato"),
TOMATO("Tomato"),
CARROT("Carrot")
public String Name;
private Test(String name) {
this.Name = name;
}
public boolean testFor(Test t)
{
if (compareTo(t) <= 0) {
return true;
}
return false;
}
}
答案 0 :(得分:5)
枚举值按创建顺序进行比较。因此POTATO
小于CARROT
,因为POTATO
的序数少于CARROT
的序数。
一些例子:
Test.POTATO.compareTo(Test.TOMATO); // returns -1, is less
Test.POTATO.compareTo(Test.POTATO); // returns 0, is equal
Test.CARROT.compareTo(Test.POTATO); // returns 2, is bigger
答案 1 :(得分:0)
compareTo 是 Enum 抽象类的最终方法。根据这个docs
compareTo(E o):将此枚举与指定的订单对象进行比较。
答案 2 :(得分:-1)
如果您有兴趣知道这个compareTo
方法如何返回值
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
Unicode
值之间返回不同<强>实施例强>
"abc".compareTo("abc") ------>0
"abc".compareTo("bcd") ------>-1
"abc".compareTo("abccd") ------>-2