Java >> Java tutorial >  >> Java

Java Array-værktøj (med eksempler)

I Java bruges array-objektet til at gemme flere stykker information. Dette værktøj tildeler sekventielt visse hukommelsesområder baseret på array-størrelsen. I Java kan et array-objekt indeholde enhver form for primitive eller ikke-primitive data. Det vil sige, at den kan indeholde en liste over heltal, strenge, objekter og så videre. Som et resultat kan alle værdierne i et array være data af en bestemt datatype. I nogle programmeringssprog starter indeksværdien af ​​et array ved 0. I Java kan du erklære både enkeltdimensionelle og multidimensionelle arrays. Ved at bruge et array kan du nemt arrangere og sortere en liste over data.

Den største ulempe ved arrays er, at de er faste og ikke kan ændres under kørsel. Denne artikel viser dig, hvordan du deklarerer, initialiserer, får adgang til og ændrer array-objekter.

Fordele

Kodeoptimering:Det optimerer koden for at hente og sortere data hurtigt. Som et resultat kan vi få alle data placeret på en indeksplacering ved hjælp af tilfældig adgang.

Ulempe

Størrelsesgrænse:I arrayet kan vi kun gemme elementer af en fast størrelse. Den udvider sig ikke i størrelse under brug. I Java anvendes en samlingsramme til at håndtere dette problem, som vokser automatisk.

Arraytyper i Java

Arrays kan opdeles i to typer.

  • Single Dimensional Array
  • Multidimensional Array

Endimensional matrix:Syntaks

datatype array_name[]; or datatype[] array_name;

Enhver specifik datatype er angivet på tidspunktet for array-erklæringen, og arrayet vil gemme data i det format.

Todimensionelt array:Syntaks

datatype array_name[][]; or datatype[][] array_name;

Et todimensionalt array kræver ligesom et endimensionelt array, at datatypen angives og to par tredje parenteser for at definere erklæringen. Data gemmes i en tabelform med et defineret antal rækker og kolonner i denne slags array.

Et-dimensionelt array:Erklære, initialisere og få adgang

I Java forklarer følgende eksempel, hvordan man bruger flere endimensionelle arrays. Først erklæres et to-element numerisk matrixobjekt og initialiseres med to heltalsværdier. Dernæst erklæres et tre-element karakter array objekt, med to tegn allokeret til det første og tredje indeks. Derefter erklæres en fire-element string array, og tre værdier er serielt allokeret til de tre indekser. Indekset bruges til at udskrive værdierne for heltal- og tegnarrays, og 'for'-løkken bruges til at udskrive værdierne for streng-arrays.

// arrayOneDimensional.java

public class arrayOneDimensional {
 
	   public static void main(String[] args) {

	   //first declare an array of numeric values
	   int number_array[] = new int[2];

	   //value assignment to array
	   number_array[0] = 24;
	   number_array[1] = 36;

	   //Declare a character array
	   char character_array[] = new char[3];

	   //Assign values
	   character_array[0] = 'X';
	   character_array[1] = 'W';
	   character_array[2] = 'Z';

	   //String array declaration
	   String[] string_array = new String[6];

	   //Assign values
	   string_array[0] = "Lenovo";
	   string_array[1] = "HP";
	   string_array[2] = "Microsoft";

	  System.out.print("\nNumeric array values : "+number_array[0]+" "+number_array[1]+"\n");
	  System.out.print("Character array values : "+character_array[0]+" "+character_array[2]+"\n");
	  System.out.print("The values of string array are : ");

	   //Iterate the array using a for loop
	   for (int j = 0; j < string_array.length; j++){
		  System.out.print(string_array[j]+" ");

	  }
	}
}

Kodens output ses på billedet nedenfor. De første to arrays' værdier udskrives baseret på den tildelte indeksværdi. Nullværdien tildeles som standard på det sidste indeks af den udskrevne strengmatrix, og det sidste indeks for den tredje matrix er ikke tildelt.

Opret en værdimatrix og sorter matrixen

I det foregående eksempel bruges indekset til at initialisere matrixværdierne uafhængigt. Dette eksempel viser, hvordan array-værdier kan initialiseres, når arrayet erklæres. I dette tilfælde erklærer koden et numerisk array med otte elementer, der indeholder værdier. 'For'-løkken bruges derefter til at udlæse værdierne. Java-arrayet tilbyder en indbygget sort()-metode til at sortere array-værdier. Denne funktion sorterer matrixværdierne, før de udskrives ved at bruge 'for'-løkken igen.

// createValuesArrayAndSort.java

import java.util.Arrays;
public class array2 {

public static void main(String[] args) {

    // numeric array initialization
    int arr_vals[] = {72, 94, 25, 66, 80, 54, 41, 20};

    System.out.print("Before sorting the Array \n");

    //use a for loop to iterate through the array
    for (int j = 0; j < arr_vals.length; j++)
        System.out.print(arr_vals[j]+" ");

    // use the sort() method to sort the array
    Arrays.sort(arr_vals);

    System.out.print("\n\nAfter sorting the Array \n");

    for (int j = 0; j < arr_vals.length; i++)
        System.out.print(arr_vals[j]+" ");
}
}

Kodens output ses på billedet nedenfor. Arrayets indhold udskrives først, efterfulgt af de sorterede array-værdier vist i stigende rækkefølge.

Todimensionelt array:Deklarer, initialiser og få adgang

Dette eksempel viser, hvordan man deklarerer, initialiserer og får adgang til et todimensionelt array ved hjælp af Java. For at angive arrayets to dimensioner skal du bruge to '[]' parenteser. Det første par tredje parenteser definerer rækkenumrene, mens det andet par tredje parenteser definerer kolonnenumrene.

To metoder til at erklære et todimensionelt array er vist i koden. Først erklæres en todimensional matrix med navnet score med to rækker og to kolonner. Fire numeriske værdier tildeles senere i de fire indekser, og to udskrives. Derefter erklæres et todimensionelt array med navne kunder med fire rækker og tre kolonner med værdier.

Hver værdi af arrayet læses ved hjælp af en 'for'-løkke. Sløjfen vil læse fire rækker af arrayet og værdierne for hver kolonne fire gange, og vise det forberedte resultat efter hver iteration.

// twoDimensionalArray.java


public class twoDimensionalArray {

public static void main(String[] args) {

    // two-dimensional numeric array declaration with length
    int[][] score=new int[2][2];

    //Initialize the  array with values
    score[0][0] = 991;
    score[0][1] = 600;
    score[1][0] = 992;
    score[1][1] = 800;

    // printing the array values
    System.out.print("The score of " + score[1][0] + " is " + score[1][1]);

    // two-dimensional string array declaration with values
    String customer_info[][]={{"25453","Tom Clint","Chairman"},
                         {"25368","Sam Bright","Director"},
                         {"25443","Ann Faith","GM"},
                         {"25332","Joy Brown","MD"}};  

    // using for loop to iterate through the array values
    for(int i=0; i<4; i++)
    {
        System.out.print("\nThe position of: " + customer_info[i][1]+"("+customer_info[i][0]+")" +
                    " is " + customer_info[i][2]);

    }
}
}

Kodens output ses på billedet nedenfor. Den øverste linje viser scorearrayets output, mens de efterfølgende fire linjer viser kundearrayets resultat.

Java's Jagged Array

Et takket array oprettes, når antallet af kolonner i et 2D-array er ulige. For at sige det på en anden måde er det en række arrays med varierende antal kolonner.

//JaggedArrayInJava.java
// jagged array Java Program
class JaggedArrayInJava{

  public static void main(String[] args){
//declaring a 2D array with odd columns
  
int jagged_arr[][] = new int[3][];
jagged_arr[0] = new int[3];
jagged_arr[1] = new int[4];
jagged_arr[2] = new int[2];
  
//initializing a jagged array  
    int count = 0;  
    for (int i=0; i<jagged_arr .length; i++)  
        for(int j=0; j<jagged_arr[i].length; j++)  
            arr[i][j] = count++;  

    //jagged array  data printing
    for (int i=0; i<arr.length; i++){  
        for (int j=0; j<jagged_arr[i].length; j++){  
            System.out.print(jagged_arr[i][j]+" ");  
        }  
        System.out.println();
    }  
}
}

Klonning af et array i Java

Vi kan oprette en klon af Java-arrayet, fordi det implementerer den Cloneable-grænseflade. Når vi laver en dyb duplikat af et enkeltdimensionelt array, laver vi en dyb kopi af Java-arrayet. Den kopierer den faktiske værdi. Hvis vi opretter klonen af ​​et multidimensionelt array, skaber det den overfladiske kopi af Java-arrayet, hvilket betyder, at den kopierer referencerne.

// CloneArray.java
// clone the array  Java Program
class CloneArray{  
  
public static void main(String args[]){  
  
int arr_vals[]={12,89,41,98};  
System.out.println("The original array:");  

for(int i:arr_vals)  
System.out.println(i);  
  
System.out.println("The array clone:");  
int clone_arr[]=arr_vals .clone();  
for(int i:clone_arr)  
System.out.println(i);  
  
System.out.println("Are they equal to each other?");  
System.out.println(arr_vals==clone_arr);  
  
}}  

Array-kopiering i Java

Funktionen arraycopy() i System-klassen bruges til at kopiere en matrix til en anden.

// ArrayCopyExample.java
//Java Program to copy a source array into a destination array in Java  
class ArrayCopyExample {
  
    public static void main(String[] args) {  
        // source array declaration
        char[] sourceArray = { 'c', 'o', 'd', 'e', 'u', 'n', 'd', 'e', 'r', 's', 'c', 'o', 'r', 'e', 'd' };  
       
       // destination array declaration
        char[] destinationArray = new char[9];  

        //copying array using System.arraycopy() method  
        System.arraycopy(sourceArray, 2, destinationArray, 0, 9);  

        //destination array printing
        System.out.println(String.valueOf(destinationArray));  
    }  
}  

Konklusion

I de fleste tilfælde er et array en samling af lignende-type elementer gemt i en enkelt hukommelsesadresse. Et array i Java er et objekt, der indeholder komponenter af samme datatype. Ydermere opbevares elementerne i et array i en enkelt hukommelsesadresse. Det er en datastruktur, hvor vi gemmer sammenlignelige varer. I et Java-array kan vi kun gemme et fast antal elementer.

Arrayets indledende element er placeret ved arrayets 0. indeks, og det andet element er gemt ved 1. indeks, og så videre. Denne tutorial demonstrerer de grundlæggende anvendelser af endimensionelle og todimensionelle arrays i Java ved hjælp af enkle eksempler. Denne vejledning vil lære uerfarne Java-programmører, hvordan man bruger arrays og bruger dem korrekt i deres kode.


Java tag