מהו Stack Class ב- Java וכיצד להשתמש בו?

מחלקת ערימה בג'אווה היא חלק ממסגרת האוסף המפשטת פעולות כמו דחיפה, פופ וכו '. מאמר זה מתמקד בכיתת מחסנית עם דוגמאות.

מבני נתונים היוו ברכה לעולם התכנות שכן הם מפשטים את התכנות במידה רבה. מחלקת הערימה בג'אווה היא חלק מ- שמפשט פעולות שונות כמו דחיפה, פופ וכו '. במאמר זה נחקור את המושג הזה בפירוט. המצביעים הבאים ייחקרו במאמר זה:

בוא נתחיל.





מהי מחלקת Stack ב- Java?

ערימה היא א מבנה נתונים שעוקב אחר LIFO (Last In First Out). מחלקת Java Stack נופלת תחת מסגרת ההיררכיה הבסיסית של אוספים בה תוכלו לבצע פעולות בסיסיות כמו דחיפה, פופ וכו '. אנו יודעים כימסגרת אוסף Java כוללת ממשקים ו שיעורים . כעת, נקבל תצוגה ברורה של אופן עריכת מחלקה בג'אווה בהיררכיית המסגרות של אוספי ג'אווה.

היררכיה - מחלקת מחסנית בג



בהיררכיה שלעיל, התיבה הכחולה מתייחסת להממשקים השונים והתיבה הצהובה מגדירה את המעמד. מחסנית בג'אווה מרחיבה את מחלקת הווקטורים המיישמת עוד יותר ממשק רשימה . בכל פעם שאתה יוצר ערימה, בהתחלה היא אינה מכילה שום פריט, כלומר הערימה ריקה.

בהמשך, בואו נראה את השיטות השונות של מחלקת Java Stack.

שיטות של מחלקת מחסנית בג'אווה

בג'אווה קיימות בעיקר 5 שיטות של מחלקת Stack.להלן השיטות העומדות לרשותנו כאשר אנו משתמשים בכיתת הערימה בג'אווה.



שיטות תיאור

ריק()

בודק אם הערימה ריקה

לִדחוֹף()

כיצד להתקין PHP על Windows - -
דחוף פריט לראש הערימה

פופ ()

הסר את האובייקט מהערימה

לְהָצִיץ()

מסתכל על האובייקט של ערימה מבלי להסיר אותה

לחפש()

מחפש פריט בערימה כדי לקבל את האינדקס שלו

הבה נבין כל אחת מהשיטות הללו באמצעות דוגמה פרוגרמטית:

חבילה של אדוריקה ייבוא ​​java.io. * ייבוא ​​java.util. * מחלקה ציבורית StackMethods {// להוסיף או לדחוף אלמנט בחלק העליון של המחסנית ריק ריק סטטי push_method (Stack st, int n) {st.push (מספר שלם חדש (n) System.out.println ('push (' + n + ')') System.out.println ('מחסנית נוכחית:' + st)} // אלמנט תצוגה בחלק העליון של המחסנית סטטי ריק peek_method (מחסנית & ampampampltInteger & ampampampgt st) { אלמנט שלם = (שלם) st.peek () System.out.println ('אלמנט על מחסנית:' + אלמנט)} // מחפש אלמנט בערימה סטטי ריק החיפוש (ערימת st, אלמנט int) {שלם pos = ( מספר שלם) st.search (אלמנט) אם (pos == -1) System.out.println ('אלמנט לא נמצא') אחר System.out.println ('אלמנט נמצא במיקום' + pos)} // מסיר אלמנט מהחלק העליון של המחסנית הסטטי חלל pop_method (stack st) {System.out.print ('pop =') Integer n = (Integer) st.pop () System.out.println (n) System.out.println ( 'מחסנית שנותרה:' + st)} ראשי ריק סטטי ציבורי (ארגומנטים מחרוזת []) {Stack st = מחסנית חדשה () Sys tem.out.println ('ערימה ריקה:' + st) push_method (st, 4) push_method (st, 8) push_method (st, 9) peek_method (st) search_method (st, 2) search_method (st, 4) pop_method ( st) pop_method (st) pop_method (st) נסה {pop_method (st)} לתפוס (EmptyStackException e) {System.out.println ('ערימה ריקה')}}}

תְפוּקָה:

ערימה ריקה: []
לדחוף (4)
מחסנית נוכחית: [4]
לדחוף (8)
מחסנית נוכחית: [4, 8]
לדחוף (9)
מחסנית נוכחית: [4, 8, 9]
אלמנט על גבי מחסנית: 9
אלמנט לא נמצא
היסוד נמצא במיקום 3
פופ = 9
מחסנית שנותרה: [4, 8]
פופ = 8
מחסנית שנותרה: [4]
פופ = 4
מחסנית שנותרה: []
פופ = ערימה ריקה

הֶסבֵּר: באמור לעיל , הדפסתי תחילה ערימה ריקה והוספתי כמה אלמנטים בשיטת Push. לאחר שהאלמנטים נמצאים בערימה, הצגתי את האלמנטים בחלק העליון של הערימה בשיטת Peek. לאחר מכן, ביצעתי חיפוש בשיטת החיפוש ולבסוף הסרתי את האלמנטים במחלקת Java Stack בשיטת Pop.

אם נלך קדימה עם Java Stack Class, בואו נסתכל על פעולות שונות שתוכלו לבצע בזמן הטמעת class stack ב- Java.

פעולות Java Stack:

גודל הערימה:

חבילה Edureka ייבוא ​​java.util.EmptyStackException ייבא java.util.Stack מחלקה ציבורית StackOperations {public static void main (String [] args) {Stack stack = new Stack () stack.push ('1') stack.push ('2 ') stack.push (' 3 ') // בדוק אם הערימה ריקה System.out.println (' האם מחסנית Java ריקה? '+ stack.isEmpty ()) // מצא את גודל Stack System.out. println ('גודל הערימה:' + stack.size ())}}

תְפוּקָה: האם ערימת הג'אווה ריקה? שֶׁקֶר
גודל הערימה: 3

אלמנטים מוחלפים של ערימת ג'אווה:

  • חזר על ערימה באמצעות איטרטור ()
  • בוטל מעל מחסנית באמצעות Java 8 forEach ()
  • בוטל מעל מחסנית באמצעות listIterator () מלמעלה למטה

נתחיל לחזור על אלמנטים באמצעות איטרטור ().

חבילה Edureka ייבוא ​​java.util.EmptyStackException ייבוא ​​java.util.Iterator ייבוא ​​java.util.Stack מחלקה ציבורית StackOperations {ציבורי ריק ריק סטטי (מחרוזת [] args) {Stack stack = new Stack () stack.push ('1') stack.push ('2') stack.push ('3') איטרטור איטרטור = stack.iterator () בעוד (iterator.hasNext ()) {ערך אובייקט = iterator.next () System.out.println (value)} }}

תְפוּקָה:

אחד
2
3

באופן דומה, ניתן לבצע את החזרה על ידי שיטות אחרות. עיין בקוד להלן לקבלת הבנה נוספת:

חבילת הדגמת ייבוא ​​java.util.EmptyStackException ייבוא ​​java.util.Iterator יבוא java.util.ListIterator ייבוא ​​java.util.Stack מחלקה ציבורית JavaOperators {ציבורי ריק סטטי ריק (מחרוזת [] טענות) {מחסנית מחסנית = מחסנית מחסנית חדשה (). לדחוף ('1') stack.push ('2') stack.push ('3') System.out.println ('חזר ערימה באמצעות שיטה forEach ():') stack.forEach (n -> {System. out.println (n)}) ListIterator ListIterator = stack.listIterator (stack.size ()) System.out.println ('חזר על ערימה באמצעות listIterator () מלמעלה למטה:') ואילו (ListIterator.hasPrevious () ) {String str = ListIterator.previous () System.out.println (str)}}

תְפוּקָה: בוטל ערימה באמצעות שיטת forEach ():
אחד
2
3
בוטל מעל ערימה באמצעות listIterator () מלמעלה למטה:
3
2
אחד

הֶסבֵּר: בקוד שלעיל, אתה יכול לראות את החזרה באמצעות שיטת forEach () ואז להפוך אותה באמצעות listIterator () מלמעלה למטה של ​​הערימה.

כיצד ליצור קובץ ב - Java

זה הסוף של הבלוג 'Stack Class in Java'. אני מקווה שאתם ברורים עם מסגרת אוספי Java, זו היררכיה יחד עם קודי הדוגמה של מחלקת Java Stack. האם לקרוא את הבלוג הבא שליעַל שם רשמתי 75 שאלות ותשובות מובילות שיעזרו לך להתבדל בתהליך הראיון.

כעת לאחר שהבנתם אוספי Java, עיינו ב מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפזורים ברחבי העולם. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה מיועד לסטודנטים ואנשי מקצוע שרוצים להיות מפתח Java. הקורס נועד לתת לך יתרון בתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת בקטע ההערות בבלוג 'מחסנית מחסנית בג'אווה' ונחזור אליך בהקדם האפשרי.