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

  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • optionalinfo

    optionalinfo

    29 EKİM 2005
  • TROPFEST

    TROPFEST

    27 Mart 2007