Bagaimana mengurutkan daftar tertaut di Java

Urutkan daftar ditautkan Anda di Java.

Urutkan daftar yang ditautkan di Java

Langkah 1

Deklarasikan daftar tertaut dengan membuat objek LinkedList baru dan menugaskannya ke variabel LinkedList. LinkedList mewarisi dari kelas List generik, sehingga setiap metode yang diterima List juga akan diterima oleh objek LinkedList.

"" LinkedList l = LinkedList baru (); ""

Langkah 2

Tambahkan objek dengan tipe yang sama (seperti bilangan bulat) ke daftar. Ini dapat berupa objek apa pun, tetapi untuk dapat mengurutkan daftar tertaut, semuanya harus memiliki jenis yang sama.

Langkah 3

Gunakan metode List.addFirst untuk memasukkan objek baru di awal daftar, sehingga objek yang Anda tambahkan akan berada dalam urutan terbalik. Jika Anda ingin menambahkannya ke akhir daftar, gunakan metode List.addLast.

"" list.addFirst (1); list.addFirst (3); list.addFirst (2); ""

Langkah 4

Gunakan iterator untuk beralih ke daftar, dan cetak sebelum dan sesudah untuk melihat apa yang dilakukan oleh metode pengurutan.

"" untuk (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} ""

Sortir menggunakan pembanding default dan kustom

Langkah 1

Urutkan daftar dengan pembanding standar. Komparator adalah objek yang membandingkan dua objek. Objek pembanding standar menggunakan operator lebih kecil dari, sehingga daftar akan diurutkan dalam urutan menaik. Untuk mengurutkan daftar, gunakan metode statis Collections.sort.

"" Collections.sort (daftar); ""

Langkah 2

Urutkan daftar dengan pembanding khusus dengan menulis kelas yang mengimplementasikan antarmuka perbandingan dan memberikannya sebuah instance sebagai argumen untuk mengurutkan. Kelas yang mengimplementasikan komparator hanya harus menerapkan metode "bandingkan" sederhana.

"" Kelas publik GreaterThan mengimplementasikan Comparator lain jika (x == y) {return 0;} else {return 1;}}} ""

Langkah 3

Gunakan panggilan ke Collections.sort dengan meneruskan contoh baru GreaterThan sebagai argumen kedua. Karena objek yang lebih besar akan diurutkan sebelumnya dalam daftar, daftar akan diurutkan dalam urutan menurun, bukan naik. Alternatifnya, jika Anda akan memesan daftar objek dari kelas khusus yang telah Anda tulis sendiri, kelas tersebut dapat mengimplementasikan antarmuka Comparable daripada menggunakan kelas Komparator terpisah.

"" Collections.sort (daftar, GreaterThan baru ()); ""