ترتيب ڏيڻ مشڪل ٿي سگھي ٿو، خاص طور تي جيڪڏھن توھان جي لسٽ
ان کان پوء اسان انٽرفيس جي عمل جي وضاحت ڪريون ٿا
List
۾ آبجیکٹ ريپرز ( Byte
, Integer
, Short
, Long
, Double
, Float
) شامل آھن بجاءِ ابتدائي عددي ڊيٽا جي قسمن جي. مان هڪ طريقو استعمال ڪرڻ جي صلاح ڏيان ٿو جيڪو آسان مسئلا حل ڪرڻ يا انٽرويو وٺندڙ جي سوال جو جواب ڏيڻ لاءِ تمام ڪارائتو ٿي سگهي ٿو. پهرين، اچو ته چونڊيو جيڪو اسان ڀرينداسين List
. هن مثال ۾ آئون استعمال ڪندس گراف جي ڪنڊن جي فهرست ( Edges
) هڪ سادي ڊيٽا جي جوڙجڪ مان 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();
هڪ گراف ڇا آهي؟ جدا جدا رياضي ۾، هڪ گراف کي سيٽن جي هڪ جوڙي جي طور تي بيان ڪيو ويو آهي ( شايد، انهن لاءِ جيڪي رياضياتي تجزين جا عادي نه آهن، اهڙي تعريف بلڪل واضح نه ٿيندي، تنهنڪري اچو ته ان کي وڌيڪ آسانيءَ سان چئون: گراف انهن کي ڳنڍيندڙ چوڪن ۽ ڪنارن جو مجموعو آهي. گراف جو هڪ سٺو مثال جيڪو ان کي فوري طور تي تجريد جي دائري کان مواد جي دائري تائين وٺي ويندو، ريلوي ٽريڪ جو نقشو آهي. اهڙي گراف جون چوٽيون اسٽيشنون آهن . خير، انهن جي وچ ۾ رستا ڪنارا آهن . |
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;
}
}
هن مثال ۾، اسان گراف جي ڪنارن کي انهن جي وزن سان ترتيب ڏينداسين، يا vertex src (ذريعو) کان vertex dst (منزل) تائين. آخرڪار، اسان معياري طريقو استعمال ڪندا آهيون java.util.Arrays.sort ()
:
Arrays.sort(edges, new SortByCost())
هاڻي شين سان ڀريل اسان جي شيٽ کي Edges
ترتيب ڏنل ترتيب سان ترتيب ڏنل آهي (ننڍي کان وڏي تائين). حل جو مصنف ايٿن آررووڊ آهي.
GO TO FULL VERSION