CodeGym /جاوا بلاگ /Random-SD /جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن...
John Squirrels
سطح
San Francisco

جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا. حصو 6

گروپ ۾ شايع ٿيل
هيلو، دنيا! اهو ضروري آهي ته ڪنهن به ڊولپر لاءِ ڪڏهن به وڌڻ نه روڪيو. آخرڪار، جيڪڏهن توهان روڪيو ٿا، توهان خطري کان ٻاهر نڪرڻ ۽ مڪمل طور تي نوڪري مارڪيٽ مان نڪرڻ جو خطرو آهي. آئي ٽي دنيا مسلسل ترقي ڪري رهي آهي ۽ اڳتي وڌي رهي آهي - توهان کي ان سان گڏ هلڻ جي ضرورت آهي. پر ساڳئي وقت، توهان صرف هميشه جديد ٽيڪنالاجيز ۾ گھمڻ نه ٿا ڪري سگهو، متان توهان وساريو "ڪلاسڪ" (کلاسڪ سافٽ ويئر ڊولپمينٽ موضوع). اڄ مان جاوا ڊولپرز لاءِ ”ڪلاسڪ عنوانن“ جي بحث کي جاري رکڻ چاهيان ٿو. جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 6 - 1مان اشارو ڪندس ته منهنجا جواب حتمي لفظ نه آهن. اهي صرف صحيح جوابن جو منهنجو نظريو آهي - توهان انهن مان ڪجهه سان اختلاف ڪري سگهو ٿا. اھو بلڪل ٺيڪ آھي، تنھنڪري پنھنجي راء کي تبصرن ۾ حصيداري ڪرڻ لاء آزاد محسوس ڪريو. توهان مضمون جي آخر ۾ نظرثاني جي پوئين حصن جي لنڪ ڳولي سگهو ٿا. جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 6 - 2

لائبريريون ۽ معيار

52. Hibernate ڇا آهي؟ JPA ۽ Hibernate جي وچ ۾ ڇا فرق آهي؟

هن سوال جو جواب ڏيڻ لاء، مان سمجهان ٿو ته اسان کي پهريان سمجهڻ جي ضرورت آهي JPA ڇا آهي. اها هڪ وضاحت آهي جيڪا بيان ڪري ٿي هڪ آبجیکٹ-رابطي واري نقشي سازي جاوا جاوا جي شين جي ۽ هڪ API مهيا ڪري ٿي اهڙين شين کي محفوظ ڪرڻ، ٻيهر حاصل ڪرڻ ۽ هٿ ڪرڻ لاءِ. اھو آھي، لاڳاپو ڊيٽابيس (DBs) ھڪٻئي سان ڳنڍيل جدولن جي ھڪڙي سيٽ جي طور تي پيش ڪيو ويو آھي. ۽ JPA هڪ وڏي پيماني تي منظور ٿيل معيار آهي جيڪو بيان ڪري ٿو ته ڪئين شيون لاڳاپو ڊيٽابيس سان لهه وچڙ ڪري سگهن ٿيون. جئين توهان ڏسي سگهو ٿا، JPA ڪجهه خلاصو ۽ غير معمولي آهي. اهو خود خيال وانگر آهي، انداز. جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 6 - 3پر Hibernate هڪ مخصوص لائبريري آهي جيڪا JPA paradigms کي لاڳو ڪري ٿي. ترتيب لفظن ۾، توھان ھي لائبريري استعمال ڪري سگھو ٿا ھڪڙي لاڳاپيل ڊيٽابيس سان ڪم ڪرڻ لاءِ شيون جيڪي ڊيٽابيس ۾ ڊيٽا کي نمائندگي ڪن ٿيون (Entity). هن لائبريريءَ کي چيو وڃي ٿو ته جي پي اي آئيڊيلز جي تمام ويجهو آهي. اهو ئي سبب آهي جو اهو مشهور ٿيو. جئين توهان تصور ڪري سگهو ٿا، ان جي مقبوليت وڌيڪ ترقي ۽ بهتري کي جواز بڻائي ٿي. اضافي طور تي، وسيع استعمال هڪ وسيع ڪميونٽي مان نڪرندو آهي جيڪو اڳ ۾ ئي هن اوزار سان لاڳاپيل هر ممڪن ۽ ناممڪن سوال کي ڳولي چڪو آهي. Hibernate مڪمل طور تي اڀياس ڪيو ويو آهي، ۽، جيئن اهو نڪتو، اهو قابل اعتماد آهي. هتي هڪ سٺو سبب آهي ڇو ته بهار ۾ مثالي JPA عمل درآمد عام طور تي هود جي هيٺان Hibernate استعمال ڪندو آهي.

53. cascading ڇا آهي؟ اهو ڪيئن Hibernate ۾ استعمال ڪيو ويندو آهي؟

جيئن مون اڳ ۾ چيو آهي، Hibernate ۾ ڪميونيڪيشن ڊيٽا جي شين ذريعي ٿئي ٿي جنهن کي ادارو سڏيو وڃي ٿو. اهي ادارا ڊيٽابيس ۾ مخصوص جدولن جي نمائندگي ڪن ٿا، ۽ جيئن توهان کي ياد هوندو، جاوا ڪلاس ٻين طبقن جا حوالا شامل ڪري سگھن ٿا. اهي رشتا ڊيٽابيس ۾ پڻ ظاهر ٿيندا آهن. ضابطي جي طور تي، اهي يا ته پرڏيهي ڪنجيون آهن (OneToOne، OneToMany، ManyToOne رشتن لاءِ) يا وچولي جدول (ManyToMany رشتن لاءِ). جڏهن توهان جي اداري وٽ ٻين لاڳاپيل ادارن جا حوالا آهن، انهن حوالن جي مٿان تشريح رکيا ويندا آهن تعلق جي قسم کي ظاهر ڪرڻ لاءِ: @OneToOne، @OneToMany، @ManyToOne، @ManyToMany. توھان وضاحت ڪري سگھو ٿا cascade جو قسم ھن رشتي لاءِ تشريح جي cascade ملڪيت ۾. JPA وٽ مخصوص طريقا آھن ادارن سان رابطي لاءِ (مسلسل رھڻ، محفوظ ڪرڻ، ضم ڪرڻ...). Cascade قسمن کي ڏيکارڻ لاء استعمال ڪيو ويو آهي ته ڪئين لاڳاپيل ڊيٽا کي ڪيئن عمل ڪرڻ گهرجي؛ اهي طريقا هڪ ٽارگيٽ اداري تي استعمال ٿيندا آهن. پوءِ ڇا آهي cascading حڪمت عمليون (cascade type)؟ JPA معيار ڇهن cascade قسمن جي استعمال لاء مهيا ڪري ٿو:
  • PERSIST - محفوظ ڪرڻ جا عمل cascade ۾ ٿين ٿا ( saave() ۽ persist() طريقن لاءِ). ٻين لفظن ۾، جيڪڏهن اسان هڪ اداري کي محفوظ ڪريون ٿا جيڪو ٻين ادارن سان جڙيل آهي، پوء اهي ادارا پڻ ڊيٽابيس ۾ محفوظ ڪيا ويا آهن (جيڪڏهن اهي پهريان ئي موجود نه آهن)

  • MERGE - تازه ڪاري جا عمل هڪ ڪاسڪيڊ ۾ ٿين ٿا ( ضم ڪرڻ () طريقي لاءِ)

  • REMOVE - حذف ڪرڻ جا عمل cascade ۾ ٿين ٿا ( remove() طريقو)

  • سڀ - هڪ ئي وقت ۾ ٽي cascading آپريشن تي مشتمل آهي - PERSIST - ضم ڪريو - هٽايو

JPA وٽ هڪ مستقل وجود جو تصور آهي - هڪ ادارو جيڪو ڊيٽابيس ۾ پنهنجي ڊيٽا سان لاڳاپيل آهي ۽ موجوده سيشن (ڪنيڪشن) ذريعي ڪنٽرول ڪيو ويو آهي. جيڪڏهن توهان ڊيٽابيس ۾ تبديلين کي محفوظ ڪرڻ کان سواءِ ان کي تبديل ڪريو ٿا، ڊيٽابيس ۾ موجود اداري جي ڊيٽا اڃا به تبديل ٿي ويندي.
  • DETACH - لاڳاپيل ادارا سيشن ( detach() طريقي سان منظم نه ڪيا ويا آهن. اهو آهي، جڏهن لاڳاپيل ادارن جي ڊيٽا کي تبديل ڪيو ويندو آهي، ڊيٽابيس ۾ ڊيٽا خودڪار طور تي اپڊيٽ نه ڪئي وئي آهي - اهي مستقل کان الڳ ٿيل ۾ تبديل ڪيا ويا آهن (يعني ادارو JPA پاران منظم نه آهي)

  • REFRESH - هر دفعي هڪ ادارو تازو ڪيو ويندو آهي ڊيٽابيس مان ڊيٽا سان ( refresh() - ريفريش ٿيل شيون، ان سان لاڳاپيل ادارن کي پڻ تازو ڪيو ويندو آهي. مثال طور، توھان ڪنھن بہ طرح ڊيٽابيس مان ورتل ڊيٽا کي تبديل ڪيو، ۽ توھان اصل قدر بحال ڪرڻ چاھيو ٿا. انهي حالت ۾، توهان هن آپريشن کي مفيد ملندا.

جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 6 - 4Hibernate انهن سڀني معياري ڪاسڪيڊنگ عملن کي سپورٽ ڪري ٿو ۽ پڻ پنهنجون ٽي متعارف ڪرايو:
  • replicate - استعمال ڪيو ويو جڏهن اسان وٽ هڪ کان وڌيڪ ڊيٽا جو ذريعو آهي ۽ اسان چاهيون ٿا ته ڊيٽا هم وقت سازي ڪئي وڃي (Hibernate جي نقل ڪرڻ جو طريقو). سڀني ادارن کي سڃاڻپ ڪندڙ (id) هجڻ ضروري آهي انهي کي يقيني بڻائڻ لاءِ ته اهي بغير ڪنهن مسئلن جي ٺاهي سگھجن ٿيون (انهي کي يقيني بڻائڻ لاءِ ته ساڳئي اداري وٽ مختلف ڊيٽابيس لاءِ مختلف آئي ڊي نه آهن)

  • SAVE_UPDATE — cascading save/delete (Hibernate جي saveOrUpdate طريقي لاءِ)

  • LOCK - DETACHED آپريشن جي برعڪس : هڪ الڳ ٿيل اداري کي مستقل حالت ۾ تبديل ڪري ٿو، يعني، موجوده سيشن هڪ ڀيرو ٻيهر اداري کي ٽريڪ ڪندو

جيڪڏهن ڪو به cascade قسم نه چونڊيو ويو آهي، ته ان اداري تي آپريشن ان سان لاڳاپيل ٻين ادارن تي اثر انداز نه ٿيندو.

54. ڇا اينٽيٽي ڪلاس جو خلاصو ٿي سگهي ٿو؟

جي پي اي وضاحتن جي 2.1 اينٽيٽي ڪلاس جي مطابق ، " ٻئي تجريدي ۽ ڪنڪريٽ طبقن جا ادارا ٿي سگهن ٿا. " تنهن ڪري، جواب ها آهي، هڪ خلاصو طبقو هڪ ادارو ٿي سگهي ٿو ۽ @Entity تشريح سان نشان لڳايو وڃي ٿو.

55. هڪ ادارو مينيجر ڇا آهي؟ ان جي ذميواري ڇا آهي؟

سڀ کان پهريان، مان اهو نوٽ ڪرڻ چاهيندس ته EntityManager JPA جو هڪ اهم حصو آهي . اهو ڊيٽابيس سان گڏ ادارن جي رابطي لاءِ استعمال ٿيندو آهي. عام طور تي، ڊيٽابيس سان اداري جي رابطي لاءِ طريقن کي اداري تي سڏيو ويندو آهي (جاري، ضم ڪرڻ، هٽائڻ، الڳ ڪرڻ)... پر مان اهو به نوٽ ڪريان ٿو ته هي جزو عام طور تي پوري ايپليڪيشن لاءِ اڪيلو نه هوندو آهي. اهو اڪثر ٿلهو هوندو آهي، هڪ ڊهي ويندو آهي، ۽ هڪ نئون ٺاهيو ويندو آهي EntityManagerFactory استعمال ڪندي . جيڪڏهن اسان JDBC سان هڪ متوازي ڪڍون ٿا ، جتي EntityManagerFactory DataSource سان هڪجهڙائي آهي ، پوءِ EntityManager ڪنيڪشن جي برابر آهي . اڳ ۾، مون ذڪر ڪيو آهي ته هڪ مستقل ادارو هڪ ادارو آهي جيڪو موجوده ڪنيڪشن ذريعي منظم ڪيو ويندو آهي. هي ادارو EntityManager پاران منظم ڪيو ويندو آهي ، جيڪو موجوده ڪنيڪشن سان ويجھو لاڳاپيل آهي، ۽ TransactionManager ، جيڪو ٽرانزيڪشن کي کولڻ/بند ڪرڻ جو ذميوار آهي. هيٺ ڏنل شڪل ۾، توهان ڏسي سگهو ٿا اداري جي زندگيءَ جو چڪر: جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 6 - 5EntityManager ان اداري کي منظم ڪري ٿو جڏهن اهو منظم ٿيل اسٽيج ۾ هجي (جڏهن اهو مستقل هجي، ڇاڪاڻ ته ان جو تعلق EntityManager سان آهي ) . اهو آهي، اهو نئون ناهي ۽ نه هٽايو ويو آهي. جڏهن هڪ ادارو نئون آهي يا هٽايو ويو آهي، اسان اهو چئي سگهون ٿا ته اهو پڻ جدا ٿيل آهي، ڇاڪاڻ ته EntityManager ان کي منظم نٿو ڪري. EntityManager لاءِ مختلف حڪمت عمليون آھن . توهان وٽ پوري ايپليڪيشن لاءِ هڪ EntityManager سنگلٽن هجي يا هر ڪنيڪشن لاءِ هر ڀيري هڪ نئون ٺاهيو. جيڪڏھن توھان اسپرنگ استعمال ڪري رھيا آھيو، EntityManager جي ٺاھڻ/حذف ڪرڻ جو انتظام خود بخود ھوڊ ھيٺ ڪيو ويندو آھي (پر ان جو مطلب اھو نھ آھي ته توھان ان کي پنھنجي لاءِ ڪسٽمائي نٿا ڪري سگھو ^^). مون کي اهو ذڪر ڪرڻ جي ضرورت آهي ته هڪ يا وڌيڪ EntityManagers هڪ تسلسل جي حوالي سان ٺاهيندا آهن . هڪ تسلسل جي حوالي سان هڪ ماحول آهي جنهن ۾ ادارن جا مثال ڊيٽابيس ۾ ساڳين ادارن سان هم وقت سازي ڪيا ويا آهن (جيئن مون چيو، اهو صرف مسلسل ادارن لاء ڪم ڪري ٿو). جيڪڏهن توهان جي پي اي (جنهن جي مان تمام گهڻي سفارش ڪريان ٿو) ۾ تمام گهڻي ڳوڙها آڻيندؤ، توهان کي هن تصور کي گهڻو ڪري منهن ڏيڻو پوندو.

56. Assert ڪلاس ڇا آهي؟ اهو ڇو استعمال ڪيو ويو آهي؟

مون JPA ۾ اهڙي ڪلاس بابت نه ٻڌو آهي ، تنهن ڪري مان سمجهان ٿو ته اهو سوال JUnit لائبريري ۾ مليل هڪ طبقي ڏانهن اشارو ڪري ٿو جيڪو يونٽ ٽيسٽ لاء استعمال ڪيو ويندو آهي. هن لائبريري ۾، Assert ڪلاس استعمال ڪيو ويندو آهي ڪوڊ جي عملدرآمد جا نتيجا چيڪ ڪرڻ لاءِ (هتي assert جو مطلب اهو آهي ته توهان وٽ مخصوص رياست/ڊيٽا آهي ڪوڊ ۾ مخصوص هنڌ تي). مثال طور، اچو ته چئو ته توهان هڪ طريقي جي جانچ ڪري رهيا آهيو جيڪا هڪ ٻلي ٺاهي وئي آهي. توھان طريقي سان ھلندا آھيو ۽ توھان ڪجھھ نتيجا حاصل ڪندا آھيو:
Cat resultOfTest = createCat();
پر توهان کي پڪ ڪرڻ جي ضرورت آهي ته اهو صحيح طور تي ٺاهيو ويو، صحيح؟ تنهن ڪري توهان دستي طور تي هڪ مخصوص ٻلي ( expectedCat ) ٺاهيندا آهيو بلڪل انهن پيرا ميٽرن سان جيڪي توهان کي ڏسڻ جي اميد رکو ٿا cat() طريقي مان حاصل ڪيل ٻلي ۾ . پوءِ توھان استعمال ڪريو Assert class نتيجن جي تصديق ڪرڻ لاءِ:
Assert.assertEquals(resultOfTest, expectedCat);
جيڪڏهن ٻڪريون مختلف آهن، ته پوء هڪ AssertionError اڇلايو ويندو، جيڪو اسان کي ٻڌائي ٿو ته اسان متوقع نتيجا حاصل نه ڪيو. Assert ڪلاس ۾ ڪيترائي مختلف طريقا آھن جيڪي مختلف عملن کي ڍڪيندا آھن متوقع نتيجن جي تصديق ڪرڻ ۾ مددگار . هتي انهن مان ڪجهه آهن:
  • assertTrue(<boolean>) - هڪ دليل جي طور تي منظور ڪيل قدر صحيح ٿيڻ جي توقع ڪئي وئي آهي

  • assertFalse(<boolean>) - هڪ دليل جي طور تي منظور ٿيل قدر غلط هجڻ جي توقع ڪئي وئي آهي

  • assertNotEquals(<object1>, <object2>) - دليلن جي طور تي منظور ڪيل شيون مختلف هجڻ گهرجن جڏهن برابر استعمال ڪرڻ جي مقابلي ۾ ( غلط )

  • assertThrows(<ClassNameOfException>.class, <exceptionObject>) - ٻئي دليل جي توقع ڪئي ويندي آھي ھڪڙي استثناءَ جو پھرين دليل طرفان اڇلايو ويندو آھي (يعني ٻيو دليل عام طور تي ھڪڙو طريقو ڪال آھي جيڪو گھربل قسم جي استثنا کي اڇلائڻ گھرجي)

تار

57. Java's String class بيان ڪريو

اسٽرنگ ھڪڙو معياري جاوا ڪلاس آھي جيڪو اسٽرنگ ويلز (ڪردارن جي تسلسل) کي محفوظ ڪرڻ ۽ ھڙپ ڪرڻ جو ذميوار آھي. اهو هڪ غير مٽائيندڙ ڪلاس آهي (مون اڳ ۾ هتي لکيو آهي immutable )، يعني، هن طبقي جي شين جي ڊيٽا انهن جي ٺهڻ کان پوءِ تبديل نه ٿي ڪري سگهجي. مان فوري طور تي نوٽ ڪرڻ چاهيان ٿو ته StringBuilder ۽ StringBuffer ڪلاس بنيادي طور تي هڪجهڙا آهن - فرق صرف اهو آهي ته انهن مان هڪ جو مقصد هڪ گھڻائي واري ماحول ۾ استعمال لاءِ آهي ( StringBuffer ). اهي طبقا String وانگر آهن ، پر ان ۾ فرق آهي ته اهي ميوٽيڪل آهن . جيتوڻيڪ اھي ٺھيل آھن، اھي توھان کي تبديل ڪرڻ جي اجازت ڏين ٿا جيڪي اھي ظاھر ڪن ٿا، ھڪڙو نئون اعتراض ٺاھڻ کان سواء. انهن جا طريقا معياري اسٽرنگ طريقن کان مختلف آهن ۽ اسٽرنگ مينيپوليشن لاءِ ٺهيل آهن (اتي هڪ سبب آهي ته اهي ان کي بلڊر سڏين ٿا).

58. String اعتراض ٺاهڻ جا ڪهڙا طريقا آهن؟ اهو ڪٿي پيدا ٿيو آهي؟

هڪ اسٽرنگ ٺاهڻ جو سڀ کان عام طريقو اهو آهي ته اها قيمت بيان ڪرڻ آهي جيڪا اسان چاهيون ٿا ڊبل اقتباس جي نشانين ۾:
String str = "Hello World!";
توهان اهو پڻ ڪري سگهو ٿا واضح طور تي نئين استعمال ڪندي :
String str = new String("Hello World!");
توھان پڻ اکرن جي صف مان ھڪڙو تار ٺاھي سگھو ٿا:
char[] charArr = {'H','e','l','l','o',' ', 'W','o','r','l','d','!'};
String str = new String(charArr);
اسان ان کي ڪال ڪري سگھون ٿا toString طريقي سان ڪجھ اعتراض تي:
String str = someObject.toString();
اسان اهو ڪري سگهون ٿا ڪنهن ٻئي طريقي سان سڏين ٿا جيڪو هڪ تار واپس ڪري ٿو. مثال:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = reader.readLine();
توهان سمجھو ٿا ته تار ٺاهڻ جا ڪيترائي، ڪيترائي طريقا ٿي سگهن ٿا. جڏهن هڪ اسٽرنگ اعتراض ٺاهيو ويندو آهي، اهو هڪ اسٽرنگ پول ۾ محفوظ ڪيو ويندو آهي ، جنهن تي اسان هيٺ ڏنل سوالن مان هڪ ۾ وڌيڪ تفصيل سان بحث ڪنداسين.

59. توهان ٻن جاوا تارن جو مقابلو ڪيئن ٿا ڪريو، ۽ توهان انهن کي ڪيئن ترتيب ڏيو ٿا؟

جاوا استعمال ڪري ٿو ڊبل برابر نشاني ( == ) مقابلي ڪرڻ لاءِ. جيڪڏھن اسان کي ضرورت آھي سادو قدرن جو مقابلو ڪرڻ جھڙوڪ ints، اسان ان کي استعمال ڪنداسين. پر هي طريقو مڪمل شين جي مقابلي لاء مناسب ناهي. اهو صرف حوالن جو مقابلو ڪندو، يعني ته حوالا ساڳئي اعتراض ڏانهن اشارو ڪن ٿا يا نه. هن جو مطلب اهو آهي ته جيڪڏهن اسان ٻن شين کي ساڳي فيلڊ جي قيمتن سان موازنہ ڪريو == استعمال ڪندي، اسان کي غلط حاصل ڪنداسين . شعبن ۾ ساڳيا قدر آهن، پر شيون پاڻ کي ياداشت ۾ مختلف هنڌن تي قبضو ڪن ٿا. اسٽرنگ شيون، انهن جي فريب واري سادگي جي باوجود، اڃا تائين شيون آهن. انهن جي مقابلي ڪرڻ == استعمال ڪرڻ پڻ مناسب ناهي (هڪ اسٽرنگ پول جي موجودگي جي باوجود). مناسب حل آهي آبجیکٹ ڪلاس جي معياري برابري جو طريقو، جنهن کي صحيح طريقي سان ڪم ڪرڻ لاءِ اوور رائڊ ڪرڻ جي ضرورت آهي (ڊفالٽ طور، اهو استعمال ڪري ٿو == مقابلي لاءِ). اسٽرنگ ڪلاس ان کي ختم ڪري ٿو، تنهنڪري اسان صرف ان جي عمل کي استعمال ڪندا آهيون :
String firstStr = "Hello World!";
String secondStr = "Hello World!";
boolean isEquals = firstStr.equals(secondStr);
جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 6 - 6اسان برابري جي مقابلي بابت ڳالهايو آهي. هاڻي اسان ترتيب ڏينداسين موازنہ لاءِ. آخرڪار، جيڪڏهن اسان ڪجهه ترتيب ڏيڻ وارا آهيون، اسان کي ڄاڻڻ جي ضرورت آهي ته اسان ڪهڙي اصول کي ترتيب ڏيڻ لاء استعمال ڪنداسين. هن کي ڪرڻ لاء، توهان استعمال ڪري سگهو ٿا TreeSet ، هڪ معياري ترتيب ڏنل سيٽ. هي ڊيٽا جو ڍانچو ڳاڙهي-ڪارو وڻ جي الگورتھم تي ڀاڙي ٿو ۽ هڪ مخصوص ترتيب واري اصول مطابق سيٽ کي ترتيب ڏئي ٿو. جيئن مون اڳ ۾ چيو، توهان کي سمجهڻ جي ضرورت آهي ته هڪ خاص قسم جي شين کي ڪيئن ترتيب ڏيو. ترتيب ڏيڻ لاءِ موازن جو طريقو تفويض ڪرڻ لاءِ، comparators استعمال ڪريو . توھان کي عام طور تي انھن طبقن لاءِ لاڳو ڪرڻ جي ضرورت آھي جيڪي توھان ترتيب ڏيڻ چاھيو ٿا، پر String جي صورت ۾ ، اھي اڳ ۾ ئي لاڳو ٿيل آھن. ان جي مطابق، اسان صرف اسان جي تارن کي TreeSet ۾ شامل ڪيو ، ۽ اھو انھن کي اسان لاء ترتيب ڏيندو:
TreeSet<String> sortedSet = new TreeSet<>();
sortedSet.add("B");
sortedSet.add("C");
sortedSet.add("A");
sortedSet.forEach(System.out::println);
ڪنسول آئوٽ:
ABC

60. هڪ اسٽرنگ کي اکرن ۾ تبديل ڪرڻ لاءِ هڪ الگورٿم مهيا ڪريو. لاڳاپيل ڪوڊ لکو

جيئن مون اڳ ۾ چيو آهي، String شين جا ڪيترائي مختلف مفيد طريقا آهن. انهن مان هڪ آهي toCharArray . هي طريقو هڪ اسٽرنگ کي ڪردار جي صف ۾ تبديل ڪري ٿو:
String str = "Hello world";
char[] charArr = str.toCharArray();
اڳيون، اسان وٽ اکرن جو ھڪڙو سلسلو آھي جنھن کي اسين اشارو ڪري سگھون ٿا:
char firstChar = charArr[0]; // H

61. توهان هڪ اسٽرنگ کي بائيٽ ايري ۽ واپس ۾ ڪيئن تبديل ڪندا آهيو؟ لاڳاپيل ڪوڊ لکو

اسٽرنگ ڪلاس ۾ هڪ getBytes طريقو آهي، جيڪو toCharArray طريقي سان ملندڙ جلندڙ آهي ۽ اسٽرنگ کي بائيٽ ايري طور واپس ڪري ٿو :
String str = "Hello world";
byte[] byteArr = str.getBytes();
byte firstChar = byteArr[6]; // 119
اسان اڄ اسان جي نظرثاني جي منطقي نتيجي تي آيا آهيون. پڙهڻ لاءِ مهرباني!
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION