ההבדל בין מערך ArrayList ההבדל בין

Anonim

מה זה מערך ArrayList?

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

-> ->

ההבדל בין מערך ו Arraylist

  1. Resizable

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

-> ->
  1. Generics

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

  1. פרימיטיבים

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

  1. אורך

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

לדוגמה

המחלקה הציבורית ArrayLengthTest {

ארגומנטים סטטיים ציבוריים ראשיים (מחרוזת []) {{ ArrayList arrList = New ArrayList ();

מחרוזת [] items = {"One", "Two", "Three"};

עבור (String str: items) {

arrList. הוסף (str);

}

גודל int = פריטים. גודל();

מערכת. הַחוּצָה. println (גודל);

}

}

יישום

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

ביצועים

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

Array Vs. Arraylist

מערך

ArrayList מערך הוא מבנה נתונים באורך קבוע שאורכו לא ניתן לשינוי לאחר יצירת אובייקט מערך.
ArrayList הוא דינמי בטבע כלומר זה יכול לשנות את גודל עצמו לגדול בעת הצורך. גודל המערך נשאר סטטי לאורך כל התוכנית.
הגודל של ArrayList יכול לגדול באופן דינמי בהתאם לטעון ואת הקיבולת. היא משתמשת במפעיל ההקצאה לאחסון רכיבים.
הוא משתמש בתכונה add () כדי להוסיף אלמנטים. הוא יכול להכיל פרימיטיבים וכן אובייקטים מאותו סוג נתונים.
פרימיטיבים אינם מותרים ב- ArrayList. הוא יכול להכיל רק סוגי אובייקטים. Arrays and Generics לא הולכים יד ביד.
גנרי מותר ב ArrayList. מערכים יכולים להיות רב-ממדיים.
ArrayList הוא חד מימדי. זהו רכיב תכנות מקומי שבו האלמנטים מאוחסנים במקומות זיכרון רציף.
זוהי מחלקה ממסגרת האוספים של Java, שבה האובייקטים אינם מאוחסנים אף הם במקומות שונים. משתנה אורך משמש לקביעת אורך המערך.
גודל () שיטה משמשת כדי לקבוע את הגודל של ArrayList. לוקח פחות זיכרון מ- ArrayList לאחסון רכיבים או אובייקטים.
לוקח יותר זיכרון מהמערך לאחסון אובייקטים. איטרציה מעל מערך הוא מהיר יותר מאשר איטרציה מעל ArrayList.
איטרטינג על ArrayList הוא איטי משמעותית מבחינת הביצועים. סיכום

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