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

  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007
  • Tom Megalis

    Tom Megalis

    18 NİSAN 2006