CodeGym /جاوا بلاگ /Random-UR /جاوا میں اری کی اری لسٹ میں تبدیلی
John Squirrels
سطح
San Francisco

جاوا میں اری کی اری لسٹ میں تبدیلی

گروپ میں شائع ہوا۔
ہائے! آج کے سبق میں، ہم اس بارے میں بات کریں گے کہ جاوا میں ایک اری کو کیسے شروع کیا جائے اور ارے کو اری لسٹ میں کیسے تبدیل کیا جائے۔ Arrays جاوا میں کنٹینر کلاس کی توسیع ہیں اور جب ڈیٹا کی مقدار کو خاص طور پر معلوم ہو تو عارضی طور پر قدیم ڈیٹا کی اقسام کے سیٹ کو رکھنے کے طریقے کے طور پر کارآمد ہو سکتے ہیں۔ لیکن Arrays بنتے وقت جامد ہوتے ہیں، جس کا مطلب ہے کہ جب آپ ایک بناتے ہیں، تو آپ اس میں موجود آئٹمز کی تعداد کو تبدیل نہیں کر سکتے۔ آپ کو یاد رکھنا چاہئے کہ جاوا میں ایک صف کو کیسے شروع کرنا ہے۔ یہ اس طرح لگتا ہے:
datatype[] isArray;
جہاں ڈیٹا ٹائپ کوئی بھی قدیم ڈیٹا کی قسم ہے جیسے int، float، long، یا String۔ آپ اعلان کے بعد بریکٹ بھی اس طرح رکھ سکتے ہیں:
datatype isArray[];
تو ہم اس جامد صف کو عناصر کی ایک مقررہ تعداد کے ساتھ کیسے لیں اور اسے ArrayList میں تبدیل کریں؟ ٹھیک ہے، پہلے، آئیے دیکھتے ہیں کہ ArrayList کیا ہے۔

اری لسٹ

ایک ArrayList کا ایک Array سے ملتا جلتا نام ہوسکتا ہے لیکن اسے بالکل مختلف طریقے سے ہینڈل کیا جاتا ہے۔ اس کی وجہ یہ ہے کہ ایک ArrayList کنٹینر کلاس میں توسیع نہیں کرتا ہے، یہ فہرست کی کلاس کو بڑھاتا ہے۔ اور اس کا مطلب یہ ہے کہ ہر چیز کو مختلف طریقے سے سنبھالا جاتا ہے۔ ایک چیز کے لیے، کیونکہ یہ ایک فہرست ہے، آپ اسے مختلف طریقے سے جوڑ سکتے ہیں۔ آپ add(element) کا استعمال کرتے ہوئے ArrayList کے سائز کو بڑھا یا گھٹا سکتے ہیں ، جو عنصر کو فہرست کے آخر میں رکھتا ہے اور اگر ضروری ہو تو سائز میں ایک اضافہ کرتا ہے۔ یا آپ trimToSize() استعمال کرسکتے ہیں جو آخر میں کسی بھی خالی انڈیکس کو ہٹاتا ہے اور ArrayList کو اس کے موجودہ سائز میں تراشتا ہے۔ لہذا آپ دیکھ سکتے ہیں کہ صرف ایک صف کے بجائے ArrayList استعمال کرنے کے کچھ فوائد ہیں۔ اس کے بعد ہم آپ کو ایک Array سے ArrayList میں تبدیل کرنے کے دو طریقے دکھانے جا رہے ہیں اور اگر آپ کو ضرورت ہو تو واپس کیسے جانا ہے۔

جاوا میں Array سے ArrayList اور ArrayList سے Array میں منتقل ہونا

تو، ہم کہتے ہیں کہ آپ نے ایک پروگرام لکھا ہے کہ آپ کی کمپنی کے پاس بلی کے درختوں کی مرمت کے لیے کتنے نٹ اور بولٹ موجود ہیں۔ برسوں سے، آپ کو ان میں سے صرف 30 مختلف اقسام کی ضرورت ہے، لہذا ٹریک رکھنے کے لیے صرف ایک صف کا استعمال کرنا آسان ہے۔ لیکن اب آپ کے پاس ایک نیا کلائنٹ ہے جس کے لیے آپ کو اضافی 5 اقسام کا ذخیرہ کرنے کی ضرورت ہے۔ آپ اپنے پروگرام کو کیسے تبدیل کر سکتے ہیں اور اپنا تمام ڈیٹا کیسے رکھ سکتے ہیں، اور جب آپ کسی دوسرے کلائنٹ کو اٹھاتے ہیں تو اپنے آپ کو دوبارہ ایسا کرنے سے روک سکتے ہیں؟ یہ ٹھیک ہے! ایک ArrayList! تو آپ جاوا اری کو اری لسٹ میں کیسے تبدیل کرتے ہیں؟ تین طریقے ہیں۔ .asList() طریقہ استعمال کرتے ہوئے Java arrays میں ایک بہترین ٹول ہے جسے آپ دیکھ سکتے ہیں جب آپ API کو دیکھتے ہیں جسے .asList() کہتے ہیں ۔ تو آپ صرف اس میں لکھ سکتے ہیں:
boltInventory.asList(bolts);
اس طریقہ کار کے ساتھ مسئلہ یہ ہے کہ یہ ایک حقیقی ArrayList نہیں بناتا ہے۔ یہ جو کرتا ہے وہ ایک فہرست بناتا ہے جو سائز میں طے شدہ اور ناقابل تبدیلی ہے۔ لہذا آپ اب بھی متحرک انداز میں سائز کو تبدیل نہیں کرسکتے ہیں۔ عناصر کو شامل کرنے یا ہٹانے کی کوشش ایک استثناء کا سبب بنے گی۔ لہذا جب کہ اس کے استعمال ہوتے ہیں، یہ ایک حقیقی تبدیلی نہیں ہے۔ لیکن ہم اسے استعمال کر سکتے ہیں۔ .asList() کو دلیل کے طور پر استعمال کرنا جاوا میں ایک صف کو فہرست میں تبدیل کرنے کا یہ دوسرا طریقہ ہے۔ چونکہ .asList() طریقہ ایک فہرست بناتا ہے، ہم اسے اپنی اصل ArrayList کا حوالہ دینے کے لیے استعمال کر سکتے ہیں۔ یہاں ایک ArrayList شروع کرنے کا طریقہ ہے:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
یہ ایک ArrayList بنائے گا جس میں دس خالی سیل ہوں گے۔ تاہم، () آخر میں ArrayList کو بھرنے کے لیے دلیل پاس کرنے کے لیے استعمال کیا جا سکتا ہے۔ تو .asList طریقہ کے ساتھ ملا کر، آپ کے پاس ہے:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
یہ .asList() طریقہ سے تیار کردہ فہرست کو ArrayList میں منتقل کرتا ہے، لہذا اب آپ اپنی ضرورت کے مطابق اسے متحرک طور پر جوڑ سکتے ہیں۔ Collections.addAll() طریقہ استعمال کرنا جاوا میں Array کو ArrayList میں تبدیل کرنے کا دوسرا طریقہ یہ ہے کہ اس طریقہ کو استعمال کیا جائے۔ یہ Array کے مواد کو ArrayList میں منتقل کرتا ہے۔ اس طریقہ کے لیے عمومی نحو ہے:
Collections.addAll(c, T);
جہاں c منزل ہے اور T وہ ہے جو گزر رہا ہے۔ تو ہماری مثال کے طور پر، نحو اس طرح نظر آئے گا:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
یہ اری بولٹس کے پورے مواد کو نئی اری لسٹ میں منتقل کر دے گا۔ ایک ArrayList کو Array میں تبدیل کرنا ایک وقت ایسا ہوسکتا ہے جب آپ کو جاوا میں ArrayList کو Array میں تبدیل کرنے کی ضرورت ہو۔ اگر آپ کرتے ہیں تو، ArrayList کے پاس ایک طریقہ ہے .toArray(a) ، جہاں a منزل ہے۔ تو ہماری مثال کے طور پر، نحو ہو گا:
Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
جب آپ جاوا میں صف بندی کے لیے اس طرح فہرست تبدیل کرتے ہیں، تو آپ ایک گہری کاپی بنا رہے ہوتے ہیں۔ یعنی Array کے تمام حوالہ جات ArrayList کے حوالہ جات سے مختلف ہیں۔ لہذا آپ ArrayList میں ذخیرہ شدہ ڈیٹا کو تبدیل کیے بغیر ارے میں موجود ڈیٹا کو جوڑ سکتے ہیں۔ جب آپ کو ڈیٹا ٹیسٹ کرنے کی ضرورت ہو تو جاوا لسٹ کو ایک صف میں تبدیل کرنا مفید ہے۔

نتیجہ

ارے چھوٹے ڈیٹا سیٹس کی تیز رسائی اور فوری ہیرا پھیری کے لیے بہت مفید ہیں، لیکن ان کے سائز کو تبدیل کرنے میں ناکامی کا مطلب ہے کہ وہ طویل مدتی استعمال کے لیے تیزی سے کارکردگی کھو دیتے ہیں۔ ایک ArrayList آپ کو وہ لچک اور ضرورت کے مطابق نوڈس داخل کرنے اور ہٹانے کی صلاحیت فراہم کرتی ہے۔ جاوا اری کو فہرست میں تبدیل کرنے کا طریقہ سیکھنا آپ کے پروگراموں کی مجموعی کارکردگی کو بہتر بنائے گا اور ان کے رن ٹائم کو بھی بہتر بنائے گا۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION