Maaaring nakakalito ang pag-uuri, lalo na kung ang iyong listahan
Pagkatapos ay tinukoy namin ang pagpapatupad ng interface
List
ay naglalaman ng mga object wrapper ( Byte
, Integer
, Short
, Long
, Double
, Float
) kaysa sa mga primitive na numeric na uri ng data. Iminumungkahi ko ang paggamit ng isang paraan na maaaring maging lubhang kapaki-pakinabang para sa paglutas ng mga simpleng problema o pagsagot sa tanong ng isang tagapanayam. Una, piliin natin kung ano ang pupunuin natin sa ating List
. Sa halimbawang ito gagamit ako ng isang listahan ng mga gilid ng graph ( Edges
) mula sa isang simpleng istraktura ng data 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();
Ano ang isang graph? Sa discrete mathematics, ang isang graph ay tinukoy bilang isang pares ng mga set ( Marahil, para sa mga hindi sanay sa mga abstraction ng matematika, ang gayong kahulugan ay hindi magiging napakalinaw, kaya't sabihin natin ito nang mas simple: Ang graph ay isang koleksyon ng mga vertex at mga gilid na nag-uugnay sa kanila. Ang isang magandang halimbawa ng isang graph na agad na magdadala nito mula sa larangan ng abstraction patungo sa larangan ng materyal ay isang mapa ng mga riles ng tren. Ang mga vertex ng naturang graph ay mga istasyon . Well, ang mga landas sa pagitan nila ay mga gilid . |
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;
}
}
Sa halimbawang ito, pag-uuri-uriin natin ang mga gilid ng graph ayon sa kanilang timbang, o ayon sa distansya mula sa vertex src (pinagmulan) hanggang sa vertex dst (destinasyon). Sa wakas, ginagamit namin ang karaniwang pamamaraan java.util.Arrays.sort ()
:
Arrays.sort(edges, new SortByCost())
Ngayon ang aming sheet na puno ng mga bagay Edges
ay pinagsunod-sunod sa pataas na pagkakasunud-sunod (mula sa pinakamaliit hanggang sa pinakamalaki). Ang may-akda ng solusyon ay si Ethan Arrowood.
GO TO FULL VERSION