I Java, array er den vigtigste datastruktur, der indeholder elementer af samme type. Den gemmer elementer i sammenhængende hukommelsesallokering. Der er to typer array, dvs. statisk array og dynamisk array. I dette afsnit vil vi kun fokusere på statisk array i Java .
Statisk array
Et array, der er erklæret med det statiske nøgleord, er kendt som static array. Den tildeler hukommelse på kompileringstidspunktet, hvis størrelse er fast. Vi kan ikke ændre det statiske array.
Hvis vi ønsker, at et array skal dimensioneres ud fra input fra brugeren, så kan vi ikke bruge statiske arrays. I et sådant tilfælde giver dynamiske arrays os mulighed for at specificere størrelsen af et array under kørsel.
Static Array Eksempel
For eksempel opretter int arr[10] en matrix med størrelse 10. Det betyder, at vi kun kan indsætte 10 elementer; vi kan ikke tilføje et 11. element, da størrelsen af Array er fast.
int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array
Fordele ved Static Array
- Det har effektiv udførelsestid.
- Levetiden for statisk allokering er hele programmets køretid.
Ulemper ved Static Array
- Hvis der er deklareret mere statisk dataplads end nødvendigt, er der spild af plads.
- I tilfælde af at der er deklareret mindre statisk plads end nødvendigt, bliver det umuligt at udvide denne faste størrelse under kørselstiden.
Erklæring af et statisk array
Syntaksen til at erklære et statisk array er:
[]={,,.....};
For eksempel:
String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' };
Vi kan også erklære og initialisere statisk array som følger:
String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' };
Statisk array kan også erklæres som en liste. For eksempel:
List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' );
Static Array Java-program
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;>
Lad os se et andet Java-program.
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;>
Forskellen mellem statisk array og dynamisk array
Følgende tabel beskriver de vigtigste forskelle mellem statisk array og dynamisk array.
Statisk array | Dynamic Array |
---|---|
Statiske arrays tildeles hukommelse på kompileringstidspunktet. | Dynamisk array er placeret under kørsel. |
Størrelsen af statisk array er fast. | Størrelsen af det dynamiske array er fast. |
Den er placeret i stakhukommelsespladsen. | Det er placeret i heap hukommelsesplads. |
int array[10]; //array af størrelse 10 | int* array = new int[10]; |