6 ŞUBAT 2009, Cuma
Neden bir Numaralama Java son compareTo?
Java ile bir Numaralama Benzer arabirimini uygular. Ülkedir. compareTo yöntemi geçersiz kılmak için iyi olurdu, ama burada nihai olarak işaretlenmiş. Numaralama. compareTo varsayılan doğal düzenini listelenen sırasıdır. Herkes bir Java Numaralama bu kısıtlama neden biliyor mu?
CEVAP
6 ŞUBAT 2009, Cuma
Tutarlılık için sanırım... enum
Bir tür gördüğünüzde, biliyorsunbir gerçekdoğal sipariş sabitler bildirilen emri budur.
Bu geçici çözüm, farklı bir sipariş ihtiyacınız olduğunda kolayca Comparator<MyEnum>
kendi oluşturun ve bunu kullanın:
enum MyEnum
{
DOG("woof"),
CAT("meow");
String sound;
MyEnum(String s) { sound = s; }
}
class MyEnumComparator implements Comparator<MyEnum>
{
public int compare(MyEnum o1, MyEnum o2)
{
return -o1.compareTo(o2); // this flips the order
return o1.sound.length() - o2.sound.length(); // this compares length
}
}
Comparator
doğrudan kullanabilirsiniz:
MyEnumComparator c = new MyEnumComparator();
int order = c.compare(MyEnum.CAT, MyEnum.DOG);
ya da koleksiyon veya dizi kullanabilirsiniz:
NavigableSet<MyEnum> set = new TreeSet<MyEnum>(c);
MyEnum[] array = MyEnum.values();
Arrays.sort(array, c);
Ayrıntılı bilgi için:
Bunu Paylaş:
Neden't Java numaralama rakamları...
() Java Tamsayı compareTo - neden çıka...
Neden char[] şifreler için Dize Java t...
Neden belirli Unicode karakterler içer...
Java ile bir numaralama için bir Dize ...