CodeGym /جاوا بلاگ /Random-SD /جاوا اسٽيڪ 101: اسٽيڪ ڪلاس ۾ داخل ٿيڻ
John Squirrels
سطح
San Francisco

جاوا اسٽيڪ 101: اسٽيڪ ڪلاس ۾ داخل ٿيڻ

گروپ ۾ شايع ٿيل
جاوا ۾ اسٽيڪ هڪ ڊيٽا جي جوڙجڪ آهي، گهڻو ڪري هڪ قطار، صف ، ڳنڍيل فهرست، يا وڻ وانگر. جتي اهو ٻين کان مختلف آهي ته جاوا اسٽيڪ آخري ان، فرسٽ آئوٽ (LIFO) اصول تي ٻڌل آهي. هن جو مطلب اهو آهي ته جڏهن توهان اسٽيڪ مان هڪ عنصر شامل ڪرڻ ۽ ختم ڪرڻ لاءِ ٻه حڪم استعمال ڪندا آهيو، پهريون جيڪو توهان هٽايو اهو هميشه آخري هوندو جيڪو توهان شامل ڪيو. اچو ته جاوا اسٽيڪ ڪلاس تي ويجھو نظر رکون

جاوا اسٽيڪ ڪلاس جي ڳولا

جاوا اسٽيڪ ڪلاس ویکٹر ڪلاس جو ھڪڙو واڌارو آھي ، جيڪو پاڻ لسٽ ڪلاس کي وڌائيندو آھي. ڇاڪاڻ ته ویکٹر ميوٽيٽبل هوندا آهن ۽ اندر جي عناصرن جي گهرج سان وڌي ۽ سڪي سگهندا آهن، اسٽيڪ s به مطالبن تي سائز تبديل ڪري سگھن ٿا. ویکٹر ڪلاس جي توسيع پنجن عملن کي شامل ڪري ٿي جيڪي ویکٹر کي اسٽيڪ ۾ تبديل ڪن ٿيون . اهي پنج عمل آهن:
  • .push(E item) - هڪ عنصر کي اسٽيڪ جي چوٽي تي رکي ٿو
  • .pop() - عنصر کي اسٽيڪ جي چوٽي تي هٽائي ٿو ۽ ان کي فنڪشن جي قيمت طور واپس ڪري ٿو
  • .peek() - ان کي هٽائڻ کان سواءِ اسٽيڪ جي چوٽي تي عنصر کي ڏسي ٿو
  • .empty() - بولن فنڪشن کي جانچڻ لاءِ ته اسٽيڪ خالي آهي يا نه. 0 يا 1 ڏي ٿو.
  • .search (Object o) - o لاءِ ڳولي ٿو ۽ ان جي پوزيشن کي واپس ڪري ٿو. قدر 1-بنياد آهي، نه 0-بنياد تي
اسٽيڪ انهن سڀني طريقن کي ورثي ۾ پڻ ملي ٿو جيڪي ویکٹر جو حصو آهن ، جن ۾ شامل آهن پر ان تائين محدود ناهي، toString() , contains() , indexOf() , and lastElement() . جاوا اسٽيڪ 101: اسٽيڪ ڪلاس ۾ داخل ٿيڻ - 1

جاوا اسٽيڪ مثال ڪوڊنگ

ھاڻي جڏھن ته اسان Stack لاءِ افعال ڄاڻون ٿا ، اچو ته جاوا اسٽيڪ مثال ڪوڊ ڪريون. اسٽيڪ s ڊيٽا کي سنڀالڻ لاءِ تمام ڪارآمد آهن جيڪي لازمي طور تي محفوظ ڪيون وڃن ۽ جلدي حاصل ڪيون وڃن. ڇاڪاڻ ته اسٽيڪ LIFO آهي، اهو غير معمولي طور تي ڪارائتو آهي نوڊ ٽرورسل لاءِ جڏهن وڻ جي ڊيٽا جي جوڙجڪ کي ڳولي رهيا آهيو. ان کان اڳ جو اسان سڀني کي حاصل ڪريون، اچو ته هڪ بنيادي اسٽيڪ ٺاهيو. اسٽيڪ کي لاڳو ڪرڻ جو ڪوڊ هن ريت آهي:
import java.util.*;

class Main {
  public static void main(String[] args) {
    Stack<Integer> stackExample = new Stack<Integer>();
اهو سڀ ڪجهه توهان کي ڪرڻو آهي هڪ خالي اسٽيڪ ٺاهڻ لاءِ . توھان پڻ استعمال ڪري سگھوٿا صرف ڊيٽا جي قسم جو اعلان ڪرڻ کان سواءِ صرف ان جو اعلان ڪري سگھو ٿا:
Stack example = new Stack();
ياد رکو ته ڇاڪاڻ ته اسٽيڪ s ميوٽيڪل آهن، جيئن اسان عناصر کي اسٽيڪ تي ڌڪيندا آهيون، اهو خودڪار طريقي سان سائيز ۾ ترتيب ڏيندو. ھاڻي اچو ته ڏسو Stack افعال ڪيئن استعمال ڪجي.

جاوا اسٽيڪ تي عملدرآمد

اچو ته ڏسو ته ڪيئن استعمال ڪجي انهن پنجن طريقن کي جن کي اسان مختصر طور اڳ ۾ ڳولي چڪا آهيون. جاوا اسٽيڪ تي عمل ڪرڻ آسان آهي ياد رکڻ لاءِ جيڪڏهن توهان سوچيو ته ان کي پليٽن جي اسٽيڪ وانگر. توھان پليٽن کي اسٽيڪ تي وجھو، پر ھڪڙي پليٽ حاصل ڪرڻ لاء، توھان ھيٺان ڏانھن نه وڃو، توھان ھڪڙي مٿي کان حاصل ڪريو. آخري جيڪو توهان لڳايو اهو پهريون آهي جيڪو توهان لاٿو. اسان جي پوئين مثال کي وڌايو stackExample سان ، ڪم هن ريت آهن:

ڌڪ

// pushing integers onto the Stack
    stackExample.push(5);
    stackExample.push(10);
هن نقطي تي، اسان ٻين ڪمن کي ڏيکارڻ وارا آهيون جيئن ته اسان انهن ٻن انٽيجرز کي هر ڀيري جاوا اسٽيڪ مثال تي ڌڪايو آهي.

پاپ

//popping integers off of the Stack
System.out.println(stackExample.pop());
System.out.println(stackExample.pop());
پيداوار:

10
5

خالي آهي

هاڻي اچو ته چئو ته توهان هڪ اسٽيڪ مان سڀني عنصرن کي هٽائڻ چاهيو ٿا پر توهان کي پڪ ناهي ته اتي ڪيترا عنصر آهن. توهان Boolean.isEmpty() فنڪشن کي اڳڪٿي سان گڏ ڪري سگهو ٿا جڏهن ته اسٽيڪ مان سڀني عنصرن کي پاپ ڪرڻ لاءِ لوپ ڪريو . ڏسو ته هي جاوا اسٽيڪ عمل ڪيئن ڪيو ويندو آهي.
while(!stackExample.isEmpty()) {
  System.out.println(stackExample.pop());
}
پيداوار

10
5

چوڪ

اسان استعمال ڪري سگھون ٿا .peek() کي جاوا ۾ اسٽيڪ پليپشن جي طور تي ان کي هٽائڻ کانسواءِ اسٽيڪ تي ايندڙ آئٽم تي هڪ نظر وجهڻ لاءِ .
System.out.println(stackExample.peek());
پيداوار

10
جيڪڏهن اسان اسٽيڪ کي پاپ ۽ پرنٽ ڪندا آهيون، اهو 10 ۽ 5 واپس ڪندو، ڇاڪاڻ ته 10 اڃا تائين اسٽيڪ تي آهي. اسان صرف ان کي ڏٺو، اسان ان کي پاپ فنڪشن سان نه هٽايو. جاوا ۾ اسٽيڪ ايس لاءِ پيڪ فنڪشن هڪ بهترين اوزار آهي .

ڳولا

جيڪڏهن اسان هڪ خاص عنصر ڳولڻ چاهيون ٿا، جاوا ۾ اسٽيڪ تي عمل درآمد .search(e) استعمال ڪري ٿو. ان کي ڳولڻ لاء.
System.out.println(stackExample.search(5));
پيداوار

2
ياد رهي ته اهو ان ڪري آهي جو اسان ڳڻيون ٿا اسٽيڪ جي چوٽيءَ کان ۽ جاوا اسٽيڪ جي شروعات 1 کان ٿيندي آهي، نه 0 هڪ Array وانگر . تنهن ڪري، اسٽيڪ کي ڏسي، اهو آهي (10) -> (5)، ۽ 5 نمبر 2 جي جڳهه تي آهي. جيڪڏهن توهان هڪ عنصر ڳولڻ جي ڪوشش ڪندا آهيو جيڪو اسٽيڪ ۾ نه آهي ، توهان کي هڪ -1 هڪ آئوٽ طور ملندو.

ٻيهر ڪرڻ

جڏهن ڪنهن به مجموعن سان ڪم ڪري رهيا آهيو، ڪڏهن ڪڏهن ٿي سگهي ٿو جڏهن توهان کي ڪيترن ئي عناصر کي ڳولڻ جي ضرورت آهي. پيچيدگي کي بچائڻ ۽ اسٽيڪ ذريعي ڪيترائي ڀيرا ڳولڻ لاء ، توهان استعمال ڪري سگهو ٿا iteration. ڇاڪاڻ ته جاوا ۾ اسٽيڪ لسٽ ڪلاس کي وڌائيندو آهي، اتي ڪيترائي آپشن آهن ٻيهر ڪرڻ لاءِ. ھڪڙو آسان آھي صرف ListIterator فنڪشن کي استعمال ڪرڻ. ListIterator ان لحاظ کان سٺو آهي ته اهو توهان کي .hasPrevious() يا .hasNext() استعمال ڪندي هڪ اسٽيڪ کي مٿي کان هيٺ يا هيٺ کان مٿي تائين منتقل ڪرڻ جي اجازت ڏئي ٿو . هتي اهو ڪيئن ڏسڻ ۾ اچي ٿو:
ListIterator<Integer> exampleIterator = stackExample.listIterator(stackExample.size());

  while (exampleIterator.hasPrevious()) {
    int iteration = exampleIterator.previous();
    System.out.println(iteration);
  }
پيداوار

10
5
ذهن ۾ رکو ته جڏهن توهان جاوا ۾ Stack s ذريعي ٻيهر ورجائيندا آهيو، توهان ان ۾ ڪنهن به عنصر کي نه هٽايو. Iterating لازمي طور تي توهان کي ترتيب ۾ اسٽيڪ ۾ هر عنصر کي ڏسڻ جي اجازت ڏئي ٿي. جڏهن توهان هي ڪريو ٿا، توهان انهن هنڌن کي ڳولي سگهو ٿا جتي ڪجهه عناصر آهن ۽ پوء انهن جي ذريعي وڃو ۽ انهن کي ترتيب ڏيو. توھان انھن کي شمار ڪري سگھو ٿا، حذف ڪري سگھو ٿا، يا انھن کي تبديل ڪري سگھو ٿا جيڪڏھن ضرورت ھجي.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION