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

  • Canal de arkyoru

    Canal de ark

    18 Ocak 2007
  • ecf150king

    ecf150king

    20 Ocak 2006
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011