Ngurutake bisa dadi angel, utamane yen dhaptar sampeyan
Banjur kita nemtokake implementasine antarmuka
List
ngemot bungkus obyek ( Byte
, Integer
, Short
, Long
, Double
, Float
) tinimbang jinis data numerik primitif. Aku nyaranake nggunakake cara sing bisa migunani banget kanggo ngrampungake masalah sing prasaja utawa mangsuli pitakon pewawancara. Pisanan, ayo milih apa sing bakal diisi List
. Ing conto iki, aku bakal nggunakake dhaptar pinggiran grafik ( Edges
) saka struktur data sing prasaja Graph
:
// Очень простой класс Edge (рёбро графа)
public class Edge {
public Vertex src;
public Vertex dst;
public double cost;
// создание ребра между двух вершин
Edge(Vertex s, Vertex d, double c) {
src = s;
dst = d;
cost = c;
}
}
// Список рёбер
Edge[] edges = graph.getEdges();
Apa iku grafik? Ing matématika diskrèt, grafik ditetepake minangka pasangan himpunan ( Mbokmenawa, kanggo wong-wong sing ora biasa karo abstraksi matématika, definisi kasebut ora bakal cetha banget, supaya luwih gampang: Grafik minangka kumpulan simpul lan pinggiran sing nyambungake. Conto apik saka grafik sing bakal langsung njupuk saka wilayah abstraksi menyang wilayah materi yaiku peta rel sepur. Pucuk grafik kasebut minangka stasiun . Ya, dalan ing antarane yaiku pinggiran . |
java.util.Comparator
:
class SortByCost implements Comparator<Edge> {
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;
}
}
Ing conto iki, kita bakal ngurutake pinggiran grafik kanthi bobote, utawa kanthi jarak saka vertex src (sumber) menyang vertex dst (tujuan). Pungkasan, kita nggunakake metode standar java.util.Arrays.sort ()
:
Arrays.sort(edges, new SortByCost())
Saiki lembaran sing diisi obyek diurutake Edges
kanthi urutan munggah (saka sing paling cilik nganti paling gedhe). Penulis solusi kasebut yaiku Ethan Arrowood.
GO TO FULL VERSION