מהו מערך דינמי בג'אווה?



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

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

סוג נתוני שרת SQL

מבוא למערך דינמי בג'אווה

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





  • בדיקה מהירה . זהה בדיוק כמו מערכים, כאשר אחזור האלמנט באינדקס נתון, לוקח זמן O (1).



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

  • ידידותי למטמון . בדומה למערכים, מערכים דינמיים יכולים להכניס פריטים אחד ליד השני לזיכרון ובכך לעשות שימוש יעיל במטמונים.



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

  • נספח איטי במקרה הגרוע ביותר . בדרך כלל, בעוד תוספת של אלמנט חדש בסוף מערך דינמי, זה לוקח O (1) במקרה אחד. עם זאת, אם למערך הדינמי אין יותר מדדים לפריט חדש, יהיה עליו להרחיב, שלוקח O (n) בכל פעם.

  • הוספות ומחיקות יקרות. בדומה למערכים, האלמנטים מאוחסנים זה לצד זה. אז בזמן הוספה או הסרה של פריט במרכז מערך זה דורש דחיפה של אלמנטים אחרים, שלוקחים O (n) בכל פעם.

התרשימים שלהלן מראים כיצד המערכים עובדים בזמן אמת ומתארים כיצד מגדלים את האלמנטים. זה גם מראה כיצד ההוראות משתנות במקרה ממוצע ובמקרה הגרוע ביותר של פונקציות מערך.

מערך - מערך דינמי בג

גודל לעומת קיבולת

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

הכפלות מצטרפות

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

מחיקת אלמנט

בעת מחיקת אלמנט ממערך, שיטת ברירת המחדל של 'הסר ()' מסירה אלמנט מהסוף ומאחסנת אוטומטית אפס באינדקס האחרון. זה גם ימחק אלמנטים באינדקס ספציפי על ידי קריאת שיטת removeAt (i) שבה 'אני' הוא אינדקס. שיטת removeAt (i) מעבירה את כל האלמנטים הימניים בצד שמאל מהאינדקס הנתון.

שינוי גודל מערך

כאשר למערכים אין נתונים בצד ימין של המערך אשר לוקחים זיכרון מיותר, השיטה srinkSize () משחררת זיכרון נוסף. כאשר כל המשבצות נצרכות ומתווספים אלמנטים נוספים, מערך הגודל הקבוע הבסיסי צריך להגדיל את הגודל. שינוי הגודל בפועל הוא יקר, מכיוון שעלינו להקצות מערך גדול יותר ולהעתיק קדימה את כל האלמנטים ממערך שגדלתם לפני שיוכל סוף סוף להוסיף פריט חדש.

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

ייבא java.util.ArrayList ייבא java.util.Arrays ייבא java.util.Scanner מחלקה ציבורית AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' הזן את גודל המערך :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' הזן אלמנטים של המערך (Strings) :: ') עבור (int אני = 0 אני

תְפוּקָה:

עם זאת, אנו מגיעים לסוף המאמר Dynamic Array in Java. אני מקווה שקיבלתם מושג כיצד לעבוד עם מערכים דינמיים.

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

כיצד להתקין PHP על Windows - -

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