JavaRush /جاوا بلاگ /Random-UR /آبجیکٹ کی کسی بھی فہرست میں 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