في جافا، مجموعة مصفوفة هي أهم بنية بيانات تحتوي على عناصر من نفس النوع. يقوم بتخزين العناصر في تخصيص الذاكرة المتجاورة. هناك نوعان من المصفوفة، أي. مجموعة ثابتة و مجموعة ديناميكية. في هذا القسم سنركز فقط على مجموعة ثابتة في جافا .
صفيف ثابت
يُعرف المصفوفة التي تم الإعلان عنها باستخدام الكلمة الأساسية الثابتة باسم المصفوفة الثابتة. يقوم بتخصيص الذاكرة في وقت الترجمة والتي يكون حجمها ثابتًا. لا يمكننا تغيير المصفوفة الثابتة.
إذا أردنا تحديد حجم مصفوفة بناءً على مدخلات المستخدم، فلا يمكننا استخدام المصفوفات الثابتة. في مثل هذه الحالة، تسمح لنا المصفوفات الديناميكية بتحديد حجم المصفوفة في وقت التشغيل.
ما هو 10 من 100
مثال على المصفوفة الثابتة
على سبيل المثال، int arr[10] ينشئ مصفوفة بحجم 10. وهذا يعني أنه يمكننا إدراج 10 عناصر فقط؛ لا يمكننا إضافة العنصر الحادي عشر لأن حجم المصفوفة ثابت.
int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array
مزايا المصفوفة الثابتة
- لديها وقت تنفيذ فعال.
- عمر التخصيص الثابت هو وقت تشغيل البرنامج بأكمله.
عيوب المصفوفة الثابتة
- في حالة الإعلان عن مساحة بيانات ثابتة أكثر من اللازم، يكون هناك إهدار للمساحة.
- في حالة الإعلان عن مساحة ثابتة أقل من المطلوب، يصبح من المستحيل توسيع هذا الحجم الثابت أثناء وقت التشغيل.
الإعلان عن صفيف ثابت
بناء الجملة للإعلان عن صفيف ثابت هو:
[]={,,.....};
على سبيل المثال:
النوم في شبيبة
String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' };
يمكننا أيضًا الإعلان عن المصفوفة الثابتة وتهيئتها كما يلي:
String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' };
يمكن أيضًا الإعلان عن المصفوفة الثابتة كقائمة. على سبيل المثال:
List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' );
برنامج جافا صفيف ثابت
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;>
دعونا نرى برنامج جافا آخر.
جافا أثناء الشرط
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;>
الفرق بين المصفوفة الثابتة والمصفوفة الديناميكية
يصف الجدول التالي الاختلافات الرئيسية بين المصفوفة الثابتة والمصفوفة الديناميكية.
صفيف ثابت | مصفوفة ديناميكية |
---|---|
يتم تخصيص الذاكرة للمصفوفات الثابتة في وقت الترجمة. | يقع المصفوفة الديناميكية في وقت التشغيل. |
حجم المصفوفة الثابتة ثابت. | حجم المصفوفة الديناميكية ثابت. |
إنه موجود في مساحة ذاكرة المكدس. | وهو موجود في مساحة ذاكرة الكومة. |
مجموعة كثافة العمليات [10]؛ // مجموعة من الحجم 10 | int* array = new int[10]; |