JavaRush /جاوا بلاگ /Random-SD /جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو. حصو ...

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

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

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

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

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

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

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

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

  • REMOVE - هٽائڻ جا عمل cascade ۾ ٿين ٿا ( remove() طريقو )

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

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

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

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

  • SAVE_UPDATE - cascade save/delete (Hibernate طريقي لاءِ - saveOrUpdate )

  • LOCK DETACHED لاءِ انورس آپريشن آهي : اهو الڳ ٿيل وجود کي واپس مستقل حالت ڏانهن منتقل ڪري ٿو ، يعني. موجوده سيشن ذريعي ادارو ٻيهر ٽريڪ ڪيو ويندو

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

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

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

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

سڀ کان پهريان، مان اهو نوٽ ڪرڻ چاهيان ٿو ته EntityManager JPA جي اهم حصن مان هڪ آهي ، جيڪو استعمال ڪيو ويندو آهي ادارن کي ڊيٽابيس سان رابطو ڪرڻ لاءِ. عام طور تي، اهو سڏيندو آهي طريقن جي وچ ۾ رابطي جي طريقن ۽ ڊيٽابيس جي وچ ۾ (جاري، ضم ڪرڻ، هٽائڻ، الڳ ڪرڻ) ... پر مان اهو پڻ نوٽ ڪندس ته هي جزو، ضابطي جي طور تي، سڄي ايپليڪيشن لاء هڪ ناهي: اڪثر ڪري اهو هلڪو وزن آهي ۽ اڪثر هٽايو ويندو آهي ۽ هڪ نئون ٺاهيو ويندو آهي EntityManagerFactory استعمال ڪندي . جيڪڏهن اسان JDBC سان هڪ متوازي ڪڍون ٿا ، جتي EntityManagerFactory DataSource جو هڪ اينالاگ هوندو ، پوءِ EntityManager، بدلي ۾، ڪنيڪشن جو هڪ اينالاگ هوندو . ان کان اڳ مون ذڪر ڪيو آهي هڪ مستقل وجود ، هڪ ادارو جي طور تي جيڪو موجوده ڪنيڪشن ذريعي ڪنٽرول ڪيو ويندو آهي. تنهن ڪري: هي ادارو صحيح طور تي انتظام ڪيو ويندو آهي EntityManager ، جيڪو ويجهي سان لاڳاپيل آهي موجوده ڪنيڪشن ۽ TransactionManager سان ، جيڪو ٽرانزيڪشن کي کولڻ/بند ڪرڻ جو ذميوار آهي. وڌيڪ هيٺ ڏنل شڪل ۾ توهان هڪ اداري جي زندگي جي چڪر کي ڏسي سگهو ٿا: Разбор вопросов и ответов с собеседований на Java-разработчика. Часть 6 - 5EntityManager اداري کي منظم ڪري ٿو جڏهن اهو منظم اسٽيج تي آهي (هن وقت اهو مسلسل آهي، ڇاڪاڻ ته ان جو تعلق آهي EntityManager سان). اهو آهي، اهو هاڻي نئون ناهي ۽ اڃا تائين ختم نه ڪيو ويو آهي. اسان اهو چئي سگهون ٿا ته جڏهن ڪو ادارو نئون آهي يا هٽايو ويو آهي، اهو پڻ الڳ آهي، ڇاڪاڻ ته اهو EntityManager پاران منظم نه آهي. EntityManager لاءِ مختلف حڪمت عمليون آھن. اهو آهي، اتي ٿي سگهي ٿو هڪ سنگلٽن EntityManager سڄي ايپليڪيشن لاءِ، يا هڪ نئون ٺاهي سگهجي ٿو هر دفعي، هر ڪنيڪشن لاءِ. جيڪڏهن توهان اسپرنگ استعمال ڪريو ٿا، ته پوءِ EntityManager جي ٺاھڻ/حذف ڪرڻ خود بخود ھوڊ جي ھيٺان ڪنٽرول ڪيو ويندو آھي (پر ان جو مطلب اھو نه آھي ته توھان ان کي ڪسٽمائي نٿا ڪري سگھو ^^). اهو چوڻ جي قابل آهي ته هڪ يا وڌيڪ EntityManagers ٺھيل ثابتي جي حوالي سان . تسلسل جي حوالي سان هڪ ماحول آهي جنهن ۾ ادارن جا مثال ڊيٽابيس ۾ ساڳين ادارن سان هم وقت سازي ڪيا ويا آهن (جيئن مون چيو، اهو صرف مسلسل ادارن لاء ڪم ڪري ٿو). جيڪڏهن توهان جي پي اي (جنهن جي آئون تمام گهڻي سفارش ڪريان ٿو) ۾ وڌيڪ اونهائي ۾ وڌو، توهان انهن تصورن کي تمام گهڻو، گهڻو ڪري ايندا.

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

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

  • assertFalse(<boolean>) - متوقع قدر حاصل ڪيل دليل طور غلط هجڻ گهرجي

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

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

تار

57. Characterize String in Java

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

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. جاوا ۾ ٻن تارن جو مقابلو ڪيئن ڪجي ۽ انهن کي ڪيئن ترتيب ڪجي؟

جاوا استعمال ڪري ٿو ٻٽي برابر نشاني == قدرن جي مقابلي لاءِ . جيڪڏهن اسان کي ڪجهه سادو قدرن جي مقابلي ڪرڻ جي ضرورت آهي جهڙوڪ int ، اسان ان کي استعمال ڪنداسين. پر هي طريقو مڪمل شين جي مقابلي لاءِ لاڳو ناهي. انهي صورت ۾، اهو صرف حوالن جو مقابلو ٿيندو - ڇا اهي ساڳيا اعتراض ڏانهن اشارو ڪن ٿا يا نه. اهو آهي، جڏهن ٻن شين جي اندروني شعبن جي بلڪل ساڳين قدرن سان مقابلو ڪندي، == ذريعي مقابلو ڪرڻ سان نتيجو غلط ٿيندو : شين جي هڪجهڙائي واري فيلڊ جي باوجود، شيون پاڻ کي مختلف ميموري سيلز تي قبضو ڪن ٿا. ۽ اسٽرنگ ڪلاس جون شيون ، انهن جي فريب واري سادگي جي باوجود، اڃا تائين شيون آهن. ۽ مقابلي ذريعي == پڻ انهن لاءِ لاڳو ناهي (جيتوڻيڪ هڪ اسٽرنگ پول جي موجودگي جي باوجود). هتي آبجیکٹ ڪلاس جو معياري طريقو راند ۾ اچي ٿو - equals ، جنهن کي صحيح طريقي سان ڪم ڪرڻ لاءِ ڪلاس ۾ اوور رائڊ ڪيو وڃي (ٻي صورت ۾، ڊفالٽ طور ان کي == استعمال ڪندي موازنہ ڪري ٿو ). اهو اسٽرنگ ڪلاس ۾ ختم ٿيل آهي ، تنهنڪري اسان صرف ان کي وٺو ۽ استعمال ڪريو:
String firstStr = "Hello World!";
String secondStr = "Hello World!";
boolean isEquals = firstStr.equals(secondStr);
Разбор вопросов и ответов с собеседований на Java-разработчика. Часть 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);
ڪنسول آئوٽ:
اي بي سي

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

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

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

ساڳي طرح toCharArray طريقي سان ، اسٽرنگ ڪلاس وٽ هڪ getBytes طريقو آهي جيڪو اسٽرنگ جي بائيٽ صف کي واپس ڪري ٿو:
String str = "Hello world";
byte[] byteArr = str.getBytes();
byte firstChar = byteArr[6]; // 119
تجزيو جو اڄوڪو حصو پنهنجي منطقي انجام تي پهچي چڪو آهي. توهان جي توجه لاء مهرباني!Разбор вопросов и ответов с собеседований на Java-разработчика. Часть 6 - 7
سيريز ۾ ٻيا مواد:
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION