ב-Java, מַעֲרָך הוא מבנה הנתונים החשוב ביותר שמכיל אלמנטים מאותו סוג. הוא מאחסן אלמנטים בהקצאת זיכרון רציפה. ישנם שני סוגים של מערך כלומר. מערך סטטי ו מערך דינמי. בחלק זה נתמקד רק ב מערך סטטי ב-Java .
מערך סטטי
מערך שמוצהר עם מילת המפתח הסטטית ידוע כמערך סטטי. הוא מקצה זיכרון בזמן הידור שגודלו קבוע. אנחנו לא יכולים לשנות את המערך הסטטי.
אם אנחנו רוצים גודל של מערך מבוסס על קלט מהמשתמש, אז אנחנו לא יכולים להשתמש במערכים סטטיים. במקרה כזה, מערכים דינמיים מאפשרים לנו לציין את גודלו של מערך בזמן ריצה.
דוגמה למערך סטטי
לדוגמה, int arr[10] יוצר מערך בגודל 10. זה אומר שאנחנו יכולים להכניס רק 10 אלמנטים; אנחנו לא יכולים להוסיף אלמנט 11 מכיוון שהגודל של Array קבוע.
int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array
היתרונות של מערך סטטי
- יש לו זמן ביצוע יעיל.
- משך החיים של הקצאה סטטית הוא כל זמן הריצה של התוכנית.
חסרונות של מערך סטטי
- במקרה שהוכרז יותר שטח נתונים סטטי מהנדרש, יש בזבוז של מקום.
- במקרה שהוכרז פחות שטח סטטי מהנדרש, אז זה הופך להיות בלתי אפשרי להרחיב את הגודל הקבוע הזה במהלך זמן הריצה.
הכרזה על מערך סטטי
התחביר להכרזה על מערך סטטי הוא:
[]={,,.....};
לדוגמה:
נסה לתפוס ב-java
String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' };
אנו יכולים גם להכריז ולאתחל מערך סטטי באופן הבא:
String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' };
ניתן גם להכריז על מערך סטטי כרשימה. לדוגמה:
List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' );
תוכנית Java מערך סטטי
StaticArrayExample.java
public class StaticArrayExample { private static String[] array; static { array = new String[2]; array[0] = 'Welcome to'; array[1] = 'Javatpoint'; } public static void main(String args[]) { for(int i = 0; i <array.length; i++) { system.out.print(array[i] + ' '); } < pre> <p> <strong>Output:</strong> </p> <pre> Welcome to Javatpoint </pre> <p>Let's see another Java program.</p> <p> <strong>StaticArrayExample.java</strong> </p> <pre> public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;></pre></array.length;>
בוא נראה עוד תוכנית Java.
StaticArrayExample.java
public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;>
ההבדל בין מערך סטטי למערך דינמי
הטבלה הבאה מתארת את ההבדלים העיקריים בין מערך סטטי למערך דינמי.
פקודות sql dl
מערך סטטי | מערך דינמי |
---|---|
למערכים סטטיים מוקצה זיכרון בזמן ההידור. | מערך דינמי ממוקם בזמן ריצה. |
גודל המערך הסטטי קבוע. | גודל המערך הדינמי קבוע. |
הוא ממוקם בחלל זיכרון מחסנית. | הוא ממוקם בחלל זיכרון ערימה. |
int array[10]; // מערך בגודל 10 | int* array = new int[10]; |