SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013
  • SRI International

    SRI Internat

    30 NİSAN 2008
  • ThisWeekYT

    ThisWeekYT

    14 Mart 2013