logo

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

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

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

מסגרת Java Collection מספקת מספר ממשקים ומחלקות. הממשקים מכילים מַעֲרֶכֶת, רשימה , תור, דקה , והשיעורים מכילים רשימת מערך , וֶקטוֹר , רשימה מקושרת , HashSet , TreeSet , LinkedHashSet , ו PriorityQueue .

חסרונות של בנקאות מקוונת

בחלק זה, נבדיל בין שני אלמנטים של מסגרת אוסף , שזה רשימה ו-ArrayList. הרשימה היא ממשק, ו-ArrayList היא מחלקה.

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

ממשק רשימה

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

ממשק List מתרחש בחבילת java.util. הוא מיישם מחלקות ArrayList, LinkedList, Stack ו-Vector. זה גם בסיס של מחלקות ListIterator שבאמצעותן נוכל לחזור על הרשימה בכיוונים קדימה ואחורה.

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

יישום רשימה:

אנו יכולים ליישם את ממשק הרשימה באמצעות ArrayList, LinkedList, Vector ו- שיעורי מחסנית .

כדי ליצור מופע של ממשק הרשימה, נוכל להשתמש בתחבירים הבאים:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

שקול את הדוגמה הבאה של רשימה:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

תְפוּקָה:

מספרים ראשוניים לתכנות ג'אווה
 [Hello, Java, Tpoint] 

מחלקה ArrayList

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

המחלקה ArrayList גמישה הרבה יותר מהמערך המסורתי. זה מיישם את ממשק הרשימה כדי להשתמש בכל השיטות של ממשק הרשימה. זה מתרחש Java חבילת .util.

המחלקה ArrayList יורשת את המחלקה AbstractList ומיישמת את ממשק הרשימה. ניתן לגשת באופן אקראי לרכיבים שלו. לא ניתן להשתמש בו עבור סוגים פרימיטיביים כגון int, char וכו'; עבור סוגי נתונים אלה, אנו זקוקים למחלקת עטיפה.

יישום של ArrayList:

מחלקה ArrayList יורשת את כל השיטות של מחלקה AbstractList ומיישמת את ממשק List.

ניתן להכריז על מחלקה ArrayList באופן הבא:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ניתן להגדיר ArrayList באופן הבא:

 ArrayList myList = new ArrayList(); 

שקול את הדוגמה הבאה של ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

תְפוּקָה:

 [Hello, Java, Tpoint] 

כמה הבדלים עיקריים בין ממשק רשימה למחלקת ArrayList

כמה הבדלים עיקריים בין List ל- ArrayList הם כדלקמן:

  • אחד ההבדלים העיקריים הוא זה רשימה היא ממשק ו-ArrayList היא מחלקה של מסגרת Java Collection.
  • ה רשימה מרחיבה את מסגרת האיסוף , באופן השוואתי ArrayList מרחיב את מחלקה AbstractList ומיישם את ממשק List .
  • מרחב השמות עבור List ו-ArrayList הוא System.Collection.Generic ו-System Collection, בהתאמה.
  • רשימה מאחסנת אלמנטים ברצף ומזוהים לפי מספר האינדקס הבודד. באופן השוואתי, ArrayList מאחסן את האלמנטים במערך דינמי; זה יכול לגדול כשנדרש.

כאשר אנו מגדירים את הרשימה באופן הבא:

 List myList = new ArrayList(); 

זה אומר שאנחנו יכולים לקרוא לשיטות ולחברי הפניה רק ​​מממשק הרשימה.

אם נגדיר את ArrayList באופן הבא:

בונה מיתרים
 ArrayList myList = new ArrayList(); 

זה אומר שאנחנו יכולים להפעיל שיטות זמינות ב-ArrayList ולהשתמש באיברים שלה בנוסף לרשימה.

שקול את הטבלה שלהלן עבור כמה השוואות ראש בין List ל-ArrayList:

בסיס ההשוואה רשימה רשימת מערך
כללי זה ממשק. זה מעמד.
עֲבוֹדָה זה יוצר רשימה של אובייקטים שניתן לגשת אליהם על ידי מספר האינדקס הבודד. זה יוצר מערך דינמי שניתן להרחיב בעת הצורך.
יישום List list1= new ArrayList(); ArrayList myList = new ArrayList();
הרחבה/יישום זה מרחיב את מסגרת האיסוף. זה מרחיב את מחלקה AbstractList ומיישם את ממשק List.
חבילת בסיס java.util java.util
מרחב שמות מערכת.אוסף.גנרי מערכת.אוסף
ביצועים זה מספק מניפולציה מהירה יותר של אובייקטים. זה מספק מניפולציה איטית על אובייקטים בהשוואה ל- List.
מופע לא ניתן להפעיל את זה. זה יכול להיות מיידי

סיכום

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

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