A Java Arrays.sort () használata bármely objektumlistához

A válogatás bonyolult lehet, különösen, ha a listája nem primitív Java numerikus típusú (bájt, egész szám, rövid, hosszú, dupla, lebegő). Most minden helyzet változó lesz, így ez a módszer nem biztos, hogy a legjobb. Hihetetlenül hasznosnak találtam azonban egyszerű kódolási kihívásokhoz és egyetemi laborfeladatokhoz.

Először válassza ki a listát. Ebben a példában Edgesegy egyszerű Graphadatszerkezet felsorolását használom :

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

Ezután adja meg az java.util.Comparatorinterfész megvalósítását:

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

Ebben a példában rendezni fogjuk edgesa költségüket, vagy a src(forrás) csúcs és a dst(cél) csúcs közötti távolságot.

Végül használja a szokásos java.util.Arrays.sort()módszert:

Arrays.sort(edges, new SortByCost())

És éppen így, a lista Edgesmost növekvő (legkevésbé a legnagyobb) sorrendbe van rendezve.

Ha bármilyen kérdése van, forduljon bizalommal a Twitteren

Megtalálhat a GitHub-on vagy a személyes webhelyemen is

~ Boldog kódolás

- Ethan Arrowood