java - TreeSet的自然排序问题,也与多态有关
高洛峰
高洛峰 2017-04-18 10:51:00
0
2
567

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
黄舟

Pemahaman teks merah dalam tangkapan skrin pada asasnya betul tetapi tidak lengkap Seperti yang dikatakan oleh @jokester, anda tidak menyiarkan keseluruhan kod tersebut sebelum lain pada baris 561. Sebenarnya, terdapat dua kes untuk mengisih TreeMap<T> atau TreeSet<T>:

  1. telah dibuat dengan Comparator<? super T>, maka pengisihan adalah berdasarkan Comparator ini

  2. dicipta tanpa Comparator<? super T>, maka T mesti melaksanakan Comparable.

Jadi melihat situasi TreeSet<Person>, jika ia dicipta dengan Comparator<Person>, maka Person tidak perlu melaksanakan Comparable sama sekali.

Selain itu, Integer sendiri melaksanakan jenis Sebanding, dan semua jenis asas objek terkapsul (serta Long, Double, Boolean, dll.), serta String, semuanya melaksanakan Comparable, jadi sudah tentu ia boleh dipaksa .

Satu soalan terakhir untuk semua orang Jika Comparator digunakan semasa membuat TreeMap, mengapa kita perlu menentukan jenis Comparator<? super K> dan bukannya Comparator<K> atau Comparator<? extends K>? Lihat pembina TreeMap:

Peta Pokok awam(Komparator<? pembanding K> super);

迷茫
  1. Betul

  2. Sebab class Integer implements Comparable<Integer>

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan