הבדל בין ArrayList ל-LinkedList

תוכן עניינים:

הבדל בין ArrayList ל-LinkedList
הבדל בין ArrayList ל-LinkedList

וִידֵאוֹ: הבדל בין ArrayList ל-LinkedList

וִידֵאוֹ: הבדל בין ArrayList ל-LinkedList
וִידֵאוֹ: הסיבה להבדל בין == ו- === כאשר משווים שני מערכים 2024, יולי
Anonim

הבדל מפתח – ArrayList לעומת LinkedList

אוספים שימושיים לאחסון נתונים. במערך רגיל, גודל המערך קבוע. לפעמים נדרש ליצור מערכים שיכולים לגדול לפי הצורך. לשפות תכנות כמו Java יש אוספים. זוהי מסגרת עם סט של מחלקות וממשקים. הוא משמש כמיכל לקבוצת אלמנטים. אוספים מאפשרים לאחסן, לעדכן, לאחזר סט של אלמנטים. זה עוזר לעבוד עם מבני נתונים כגון רשימות, סטים, עצים ומפות. הרשימה היא ממשק של Collection framework. ArrayList ו-LinkedList הן שתי מחלקות במסגרת האוספים. הם מיישמים את ממשק האיסוף ואת ממשק הרשימה.מאמר זה דן בהבדל בין ArrayList ל-LinkedList. ArrayList היא מחלקה שמרחיבה את ה- AbstractList ומיישמת את ממשק ה- List, שמשתמש באופן פנימי במערך דינמי לאחסון רכיבי נתונים. LinkedList היא מחלקה שמרחיבה את AbstractSequentialList ומיישמת ממשקי List, Deque ו-Queue, המשתמשים באופן פנימי ברשימה מקושרת כפול לאחסון רכיבי נתונים. זה ההבדל העיקרי בין ArrayList ל-LinkedList.

מה זה ArrayList?

מחלקה ArrayList משמשת ליצירת מערכים דינמיים. בניגוד למערך רגיל, גודלו של מערך דינמי אינו קבוע. אובייקט שנוצר באמצעות מחלקה ArrayList רשאי לאחסן קבוצה של אלמנטים ברשימה. הקיבולת גדלה אוטומטית, כך שהמתכנת יכול להוסיף אלמנטים לרשימה. המחלקה ArrayList מרחיבה את המחלקה AbstractList המיישמת ממשק List. לכן, ניתן להשתמש בשיטות של ממשק List על ידי ArrayList. כדי לגשת לאלמנטים, נעשה שימוש בשיטת get().ניתן להשתמש בשיטת add() כדי להוסיף אלמנטים לרשימה. השיטה remove() משמשת להסרת אלמנט מהרשימה. עיין בתוכנית שלהלן.

ההבדל בין ArrayList ל-LinkedList
ההבדל בין ArrayList ל-LinkedList
ההבדל בין ArrayList ל-LinkedList
ההבדל בין ArrayList ל-LinkedList

איור 01: דוגמה של ArrayList

לפי התוכנית לעיל, נוצר אובייקט של ArrayList. באמצעות שיטת ההוספה, ניתן להוסיף אלמנטים באופן דינמי. האלמנטים "A", "B", "C", "D" ו- "E" מתווספים בשיטת ההוספה. שיטת ההסרה משמשת להסרת אלמנט מהרשימה. כאשר מעבירים את 4 לשיטת ההסרה, האות באינדקס הרביעי שהיא "E" מוסרת מהרשימה. כאשר עוברים דרך הרשימה באמצעות לולאת for, האותיות A, B, C ו-D יודפסו.

מה זה LinkedList?

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

המחלקה LinkedList מרחיבה את המחלקה AbstractSequentialList ומיישמת את ממשק List. לכן, השיטות של ממשק רשימה יכולות לשמש את ה-LinkedList. ניתן להשתמש בשיטת get() כדי לגשת לאלמנטים של הרשימה. ניתן להשתמש בשיטת add() כדי להוסיף אלמנטים לרשימה. השיטה remove() משמשת להסרת אלמנט מהרשימה. עיין בתוכנית שלהלן.

ההבדל העיקרי בין ArrayList ל-LinkedList
ההבדל העיקרי בין ArrayList ל-LinkedList
ההבדל העיקרי בין ArrayList ל-LinkedList
ההבדל העיקרי בין ArrayList ל-LinkedList

איור 02: דוגמה עם LinkedList

לפי התוכנית לעיל, נוצר אובייקט של LinkedList. באמצעות שיטת ההוספה, ניתן להוסיף אלמנטים באופן דינמי. האלמנטים "A", "B", "C", "D" ו- "E" מתווספים בשיטת ההוספה. שיטת ההסרה משמשת להסרת אלמנט מהרשימה. כאשר מעבירים את 4 לשיטת ההסרה, האות באינדקס הרביעי שהיא "E" מוסרת מהרשימה. בעת איטרציה באמצעות לולאת for, האותיות A, B, C ו-D יודפסו.

מהם הדמיון בין ArrayList ל-LinkedList?

  • גם ArrayList וגם LinkedList מיישמים ממשק List.
  • גם ArrayList וגם LinkedList יכולים להכיל רכיבים כפולים.
  • גם ArrayList וגם LinkedList שומרים על סדר ההכנסה.

מה ההבדל בין ArrayList ל-LinkedList?

ArrayList לעומת LinkedList

ArrayList היא מחלקה שמרחיבה את ה- AbstractList ומיישמת את ממשק ה- List אשר משתמש באופן פנימי במערך דינמי לאחסון רכיבי נתונים. LinkedList היא מחלקה שמרחיבה את AbstractSequentialList ומיישמת ממשקי List, Deque, Queue, אשר משתמשת באופן פנימי ברשימה מקושרת כפול לאחסון רכיבי נתונים.
גישה לרכיבים
הגישה לרכיבים של ArrayList מהירה יותר מאשר ב-LinkedList. הגישה לרכיבים של LinkedList איטית יותר מאשר של ArrayList.
מניפולציה של אלמנטים
המניפולציה של רכיבים של ArrayList אטית יותר מאשר של LinkedList. מניפולציה של רכיבים של LinkedList מהירה יותר מאשר של ArrayList.
התנהגות
ArrayList מופיע בתור רשימה. LinkedList מופיע בתור רשימה ותור.

סיכום – ArrayList לעומת LinkedList

מסגרת האיסוף מאפשרת עבודה עם מבני נתונים כגון רשימות, עצים, מפות וסטים. הרשימה היא ממשק של מסגרת אוסף. מאמר זה דן בהבדל בין ArrayList ל-LinkedList. ArrayList היא מחלקה שמרחיבה את ה- AbstractList ומיישמת את ממשק ה- List שמשתמש באופן פנימי במערך דינמי לאחסון רכיבי נתונים. LinkedList היא מחלקה שמרחיבה את AbstractSequentialList ומיישמת ממשקי List, Deque, Queue, אשר משתמשת באופן פנימי ברשימה מקושרת כפול לאחסון רכיבי נתונים. זה ההבדל בין ArrayList ל-LinkedList.

מוּמלָץ: