Sortarea poate fi dificilă, mai ales atunci când lista dvs. nu este de tip numeric Java primitiv (Octet, Întreg, Scurt, Lung, Dublu, Flotant). Acum, toate situațiile vor varia, astfel încât această metodă ar putea să nu fie cel mai bun caz. Cu toate acestea, l-am găsit incredibil de util pentru provocări simple de codificare și sarcini de laborator universitare.

Pentru început, alegeți lista. Pentru acest exemplu voi folosi o listă de Edges dintr-un simplu Graph structură de date:

// 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();

Apoi, definiți implementarea fișierului java.util.Comparator interfață:

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;    }}

În acest exemplu, vom sorta fișierul edges prin costul sau distanța de la src (sursă) vârf la dst (destinație) vârf.

În cele din urmă utilizați standardul java.util.Arrays.sort() metodă:

Arrays.sort(edges, new SortByCost())

Și exact așa, lista de Edges este acum sortat în ordine crescătoare (de la cel mai mic la cel mai mare).

Dacă aveți întrebări, nu ezitați să contactați Stare de nervozitate

De asemenea, mă puteți găsi pe GitHub sau personalul meu site-ul web

~ Codificare fericită

– Ethan Arrowood