logo

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

ב-Java, מַעֲרָך ו רשימת מערך הם מבני הנתונים הידועים. מערך הוא פונקציונליות בסיסית המסופקת על ידי Java, ואילו רשימת מערך הוא מחלקה של מסגרת Java Collections. זה שייך ל java.util חֲבִילָה.

מערך Java

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

 int array[]=new int[size]; 

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

 int arr[]=new int[3]; //specified size of array is 3 //adding 4 elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; 

מחלקה Java ArrayList

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

אנו יכולים ליצור מופע של ArrayList באמצעות ההצהרה הבאה:

 ArrayList arrayList=new ArrayList(); 

ArrayList מגובה פנימית על ידי המערך ב-Java. פעולת שינוי הגודל ב- ArrayList מאטה את הביצועים מכיוון שהיא כוללת מערך חדש והעתקת תוכן ממערך ישן למערך חדש. זה קורא לשיטת ה-Native implemented System.arraycopy(sec, srcPos, dest, destPos, length) .

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

 ArrayList list=new ArrayList(); //object of ArrayList arrayObj.add(12); //trying to add integer primitive to the ArrayList 

ה-JVM ממיר אותו לאובייקט שלם באמצעות איגרוף אוטומטי.

 ArrayList arrayObj=new ArrayList()//object of ArrayList arrayObj(new Integer(12)); //converts integer primitive to Integer object and added to ArrayList object 

קווי דמיון

  • Array ו- ArrayList שניהם משמשים לאחסון אלמנטים.
  • Array וגם ArrayList יכולים לאחסן ערכי null.
  • יכולים להיות להם ערכים כפולים.
  • הם לא משמרים את סדר האלמנטים.

הטבלה הבאה מתארת ​​את ההבדלים העיקריים בין array ל-ArrayList:

בָּסִיס מַעֲרָך רשימת מערך
הַגדָרָה א מַעֲרָך הוא אובייקט שנוצר באופן דינמי. הוא משמש כמיכל שמכיל את המספר הקבוע של ערכים מאותו סוג. יש לו מיקום זיכרון רציף. ה רשימת מערך הוא מחלקה של Java אוספים מִסגֶרֶת. הוא מכיל שיעורים פופולריים כמו וקטור, HashTable , ו מפת גיבוב .
סטטי דינמי מערך הוא סטָטִי במידה. ArrayList הוא דִינָמִי במידה.
ניתן לשנות גודל מערך הוא א באורך קבוע מבנה נתונים. ArrayList הוא א באורך משתנה מבנה נתונים. ניתן לשנות את גודלו בעת הצורך.
אִתחוּל חובה לספק את הגודל של מערך תוך אתחול ישיר או עקיף. אנו יכולים ליצור מופע של ArrayList מבלי לציין את הגודל שלו. Java יוצר ArrayList בגודל ברירת המחדל.
ביצועים זה מבצע מָהִיר בהשוואה ל-ArrayList בגלל גודל קבוע. ArrayList מגובה פנימית על ידי המערך ב-Java. פעולת שינוי הגודל ב- ArrayList מאטה את הביצועים.
סוג פרימיטיבי/גנרי מערך יכול לאחסן את שניהם חפצים ו פרימיטיבים סוּג. אנחנו לא יכולים לאחסן פְּרִימִיטִיבִי הקלד ב-ArrayList. זה ממיר אוטומטית סוג פרימיטיבי לאובייקט.
איטרציה של ערכים אנו משתמשים ל לולאה או לכל אחד לולאה כדי לחזור על מערך. אנו משתמשים ב- איטרטור לחזור על ArrayList.
סוג-בטיחות איננו יכולים להשתמש בגנריות יחד עם מערך מכיוון שהוא אינו סוג של מערך שניתן להמרה. ArrayList מאפשר לנו לאחסן בלבד גנרית/ סוג, זו הסיבה שהוא בטוח לסוג.
אורך מערך מספק א אורך משתנה המציין את אורך המערך. ArrayList מספק את גודל() שיטה לקביעת גודל ArrayList.
הוספת אלמנטים אנו יכולים להוסיף אלמנטים במערך באמצעות ה- מְשִׁימָה מַפעִיל. Java מספקת את לְהוֹסִיף() שיטה להוספת אלמנטים ב- ArrayList.
יחיד/ רב מימדי מערך יכול להיות רַב מֵמָדִים . ArrayList הוא תמיד חד מימדי .

דוגמה למערך ב-Java

בדוגמה הבאה, פשוט יצרנו מערך באורך ארבע.

 public class ArrayExample { public static void main(String args[]) { //creating an array of integer type int arr[]=new int[4]; //adding elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; for(int i=0;i <arr.length;i++) { system.out.println(arr[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 12 2 15 67 </pre> <h2>Example of ArrayList in Java</h2> <p>In the following example, we have created an instance of ArrayList and performing iteration over the ArrayList.</p> <pre> import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 12.4 34.6 56.8 78.9 </pre> <hr></arr.length;i++)>

דוגמה של ArrayList ב-Java

בדוגמה הבאה, יצרנו מופע של ArrayList ומבצעים איטרציה על ArrayList.

 import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } 

תְפוּקָה:

סוג משתנים java
 12.4 34.6 56.8 78.9