Menggunakan Java's Arrays.sort () untuk Daftar Objek apa pun

Penyortiran bisa jadi rumit, terutama jika daftar Anda bukan tipe numerik Java primitif (Byte, Integer, Short, Long, Double, Float). Sekarang, semua situasi akan berbeda sehingga metode ini mungkin bukan kasus terbaik. Namun, menurut saya ini sangat berguna untuk tantangan coding sederhana dan tugas laboratorium universitas.

Untuk memulai, pilih daftar Anda. Untuk contoh ini saya akan menggunakan daftar dari struktur data Edgessederhana Graph:

// Very simple Edge classpublic class Edge { public Vertex src; public Vertex dst; public double cost; // creates an edge between two vertices Edge(Vertex s, Vertex d, double c) { src = s; dst = d; cost = c; }}
// List of edgesEdge[] edges = graph.getEdges();

Selanjutnya, tentukan implementasi java.util.Comparatorantarmuka:

class SortByCost implements Comparator { public int compare(Edge a, Edge b) { if ( a.cost < b.cost ) return -1; else if ( a.cost == b.cost ) return 0; else return 1; }}

Dalam contoh ini, kita akan mengurutkan edgesberdasarkan biayanya, atau jarak dari srcsimpul (sumber) ke simpul dst(tujuan).

Terakhir gunakan java.util.Arrays.sort()metode standar :

Arrays.sort(edges, new SortByCost())

Dan seperti itu, daftar Edgessekarang diurutkan dalam urutan naik (paling rendah ke terbesar).

Jika Anda memiliki pertanyaan, silakan hubungi Twitter

Anda juga dapat menemukan saya di GitHub atau situs pribadi saya

~ Selamat Coding

- Ethan Arrowood