JavaRush /جاوا بلاگ /Random-SD /استعمال ڪندي Java Arrays.sort() شين جي ڪنهن به فهرست تي

استعمال ڪندي Java Arrays.sort() شين جي ڪنهن به فهرست تي

گروپ ۾ شايع ٿيل
ترتيب ڏيڻ مشڪل ٿي سگھي ٿو، خاص طور تي جيڪڏھن توھان جي لسٽ List۾ آبجیکٹ ريپرز ( Byte, Integer, Short, Long, Double, Float) شامل آھن بجاءِ ابتدائي عددي ڊيٽا جي قسمن جي. مان هڪ طريقو استعمال ڪرڻ جي صلاح ڏيان ٿو جيڪو آسان مسئلا حل ڪرڻ يا انٽرويو وٺندڙ جي سوال جو جواب ڏيڻ لاءِ تمام ڪارائتو ٿي سگهي ٿو. جاوا Arrays.sort() استعمال ڪندي شين جي ڪنهن به فهرست تي - 1پهرين، اچو ته چونڊيو جيڪو اسان ڀرينداسين 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();

هڪ گراف ڇا آهي؟

جدا جدا رياضي ۾، هڪ گراف کي سيٽن جي هڪ جوڙي جي طور تي بيان ڪيو ويو آهي ( V, E)، جتي Vهڪ قابل ڳڻپ سيٽ جو هڪ ذيلي سيٽ آهي، ۽ Eهڪ ذيلي سيٽ ( VхV) آهي.

شايد، انهن لاءِ جيڪي رياضياتي تجزين جا عادي نه آهن، اهڙي تعريف بلڪل واضح نه ٿيندي، تنهنڪري اچو ته ان کي وڌيڪ آسانيءَ سان چئون:

گراف انهن کي ڳنڍيندڙ چوڪن ۽ ڪنارن جو مجموعو آهي. گراف جو هڪ سٺو مثال جيڪو ان کي فوري طور تي تجريد جي دائري کان مواد جي دائري تائين وٺي ويندو، ريلوي ٽريڪ جو نقشو آهي.

اهڙي گراف جون چوٽيون اسٽيشنون آهن . خير، انهن جي وچ ۾ رستا ڪنارا آهن .

ان کان پوء اسان انٽرفيس جي عمل جي وضاحت ڪريون ٿا 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ترتيب ڏنل ترتيب سان ترتيب ڏنل آهي (ننڍي کان وڏي تائين). حل جو مصنف ايٿن آررووڊ آهي.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION