Wie deklariere und initialisiere ich ein Array in Java?


2054

Wie deklariere und initialisiere ich ein Array in Java?


4
Bevor Sie eine neue Antwort veröffentlichen, sollten Sie berücksichtigen, dass diese Frage bereits über 25 Antworten enthält. Stellen Sie sicher, dass Ihre Antwort Informationen enthält, die nicht zu den vorhandenen Antworten gehören.
Janniks

Antworten:


2683

Sie können entweder die Array-Deklaration oder das Array-Literal verwenden (aber nur, wenn Sie die Variable sofort deklarieren und beeinflussen, können Array-Literale nicht zum erneuten Zuweisen eines Arrays verwendet werden).

Für primitive Typen:

int[] myIntArray = new int[3];
int[] myIntArray = {1, 2, 3};
int[] myIntArray = new int[]{1, 2, 3};

// Since Java 8. Doc of IntStream: https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html

int [] myIntArray = IntStream.range(0, 100).toArray(); // From 0 to 99
int [] myIntArray = IntStream.rangeClosed(0, 100).toArray(); // From 0 to 100
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).toArray(); // The order is preserved.
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).sorted().toArray(); // Sort 

Für Klassen ist es zum Beispiel Stringdasselbe:

String[] myStringArray = new String[3];
String[] myStringArray = {"a", "b", "c"};
String[] myStringArray = new String[]{"a", "b", "c"};

Die dritte Art der Initialisierung ist nützlich, wenn Sie das Array zuerst deklarieren und dann initialisieren. Die Besetzung ist hier notwendig.

String[] myStringArray;
myStringArray = new String[]{"a", "b", "c"};

33
Was ist der Zweck, sowohl den zweiten als auch den dritten Weg zu haben, dies zu tun?
Quazi Irfan

123
@iamcreasy Es sieht so aus, als ob der zweite Weg mit return-Anweisungen nicht funktioniert. return {1,2,3}gibt einen Fehler aus, return new int[]{1,2,3}funktioniert aber einwandfrei (vorausgesetzt natürlich, dass Ihre Funktion ein ganzzahliges Array zurückgibt).
Skylar Ittner

1
@ SkylarMT Aber wir können immer noch den ersten Weg verwenden, um mit return-Anweisung zu verwenden.
Quazi Irfan

6
@iamcreasy Ich habe kürzlich eine Funktion geschrieben, die ein Array von Ints zurückgibt. Wenn innerhalb der Funktion ein Fehler aufgetreten ist, wollte ich, dass sie einen bestimmten Wert zurückgibt, aber die Funktion musste ein Array zurückgeben. Welcher Weg funktioniert für eine einzeilige Rückgabeerklärung? Nur der dritte.
Skylar Ittner

5
@apadana Im zweiten Fall erstellen Sie ein anonymes Objekt, das nur im umschließenden Bereich (Funktion oder was auch immer) definiert ist. Nach der Rückgabe an den Anrufer ist es nicht mehr gültig. Mit dem neuen Schlüsselwort weisen Sie das neue Objekt aus dem Heap zu und es ist außerhalb des definierenden Bereichs gültig.
Teukkam

280

Es gibt zwei Arten von Arrays.

Eindimensionales Array

Syntax für Standardwerte:

int[] num = new int[5];

Oder (weniger bevorzugt)

int num[] = new int[5];

Syntax mit angegebenen Werten (Variablen- / Feldinitialisierung):

int[] num = {1,2,3,4,5};

Oder (weniger bevorzugt)

int num[] = {1, 2, 3, 4, 5};

Hinweis: Der Einfachheit halber ist int [] num vorzuziehen, da deutlich wird, dass es sich hier um ein Array handelt. Ansonsten kein Unterschied. Ganz und gar nicht.

Mehrdimensionales Array

Erklärung

int[][] num = new int[5][2];

Oder

int num[][] = new int[5][2];

Oder

int[] num[] = new int[5][2];

Initialisierung

 num[0][0]=1;
 num[0][1]=2;
 num[1][0]=1;
 num[1][1]=2;
 num[2][0]=1;
 num[2][1]=2;
 num[3][0]=1;
 num[3][1]=2;
 num[4][0]=1;
 num[4][1]=2;

Oder

 int[][] num={ {1,2}, {1,2}, {1,2}, {1,2}, {1,2} };

Ragged Array (oder nicht rechteckiges Array)

 int[][] num = new int[5][];
 num[0] = new int[1];
 num[1] = new int[5];
 num[2] = new int[2];
 num[3] = new int[3];

Hier definieren wir Spalten explizit.
Ein anderer Weg:

int[][] num={ {1}, {1,2}, {1,2,3,4,5}, {1,2}, {1,2,3} };

Für den Zugriff:

for (int i=0; i<(num.length); i++ ) {
    for (int j=0;j<num[i].length;j++)
        System.out.println(num[i][j]);
}

Alternative:

for (int[] a : num) {
  for (int i : a) {
    System.out.println(i);
  }
}

Ragged Arrays sind mehrdimensionale Arrays.
Erläuterungen finden Sie in den offiziellen Java-Tutorials unter Details zu mehrdimensionalen Arrays


Führt der erste nicht zu einem Null / Leer-Array anstelle eines Arrays mit Standardwerten?
Vipin8169

In diesem Punkt stimme ich zu, und wir können eine weitere Funktion hinzufügen, wir können die Größe dynamisch ändern.
AdamIJK

Ich könnte mit Ihnen darüber streiten, dass ein mehrdimensionales Array ein anderer "Typ" von Array ist. Es ist einfach ein Begriff, der verwendet wird, um ein Array zu beschreiben, das zufällig andere Arrays enthält. Sowohl die äußeren als auch die inneren Arrays (und die dazwischen liegenden, falls vorhanden) sind nur reguläre Arrays.
Tim M.

127
Type[] variableName = new Type[capacity];

Type[] variableName = {comma-delimited values};



Type variableName[] = new Type[capacity]; 

Type variableName[] = {comma-delimited values};

ist auch gültig, aber ich bevorzuge die Klammern nach dem Typ, da es einfacher ist zu erkennen, dass der Typ der Variablen tatsächlich ein Array ist.


22
In diesem Punkt stimme ich zu. Der Typ der Variablen ist nicht "TYPE", sondern TYPE [], daher ist es für mich sinnvoll, ihn so zu schreiben.
Chet

3
Der Google-Stil schlägt dies ebenfalls vor.
Wener

11
Beachten Sie, dass dies int[] a, b;nicht mit int a[], b;einem Fehler identisch ist , der leicht zu machen ist, wenn Sie das letztere Formular verwenden.
Jeroen Vannevel

39

Es gibt verschiedene Möglichkeiten, ein Array in Java zu deklarieren:

float floatArray[]; // Initialize later
int[] integerArray = new int[10];
String[] array = new String[] {"a", "b"};

Weitere Informationen finden Sie auf der Sun-Tutorial- Site und im JavaDoc .


31

Ich finde es hilfreich, wenn Sie jeden Teil verstehen:

Type[] name = new Type[5];

Type[]ist die Art der Variable namens Namen ( „name“ genannt wird Kennung ). Das Literal "Typ" ist der Basistyp, und die Klammern bedeuten, dass dies der Array-Typ dieser Basis ist. Array-Typen sind wiederum eigene Typen, mit denen Sie mehrdimensionale Arrays wie Type[][](den Array-Typ von Type []) erstellen können. Das Schlüsselwort newbesagt, dass Speicher für das neue Array zugewiesen werden soll. Die Zahl in der Klammer gibt an, wie groß das neue Array sein wird und wie viel Speicher zugewiesen werden soll. Wenn Java beispielsweise weiß, dass der Basistyp Type32 Byte benötigt und Sie ein Array der Größe 5 möchten, muss es intern 32 * 5 = 160 Byte zuweisen.

Sie können auch Arrays mit den bereits vorhandenen Werten erstellen, z

int[] name = {1, 2, 3, 4, 5};

Das schafft nicht nur den leeren Raum, sondern füllt ihn mit diesen Werten. Java kann erkennen, dass die Grundelemente Ganzzahlen sind und dass es 5 davon gibt, sodass die Größe des Arrays implizit bestimmt werden kann.


Es ist also nicht notwendig, aufzunehmen int[] name = new int[5]?
Cookie Monster

31

Das Folgende zeigt die Deklaration eines Arrays, aber das Array ist nicht initialisiert:

 int[] myIntArray = new int[3];

Das Folgende zeigt die Deklaration sowie die Initialisierung des Arrays:

int[] myIntArray = {1,2,3};

Das Folgende zeigt nun auch die Deklaration sowie die Initialisierung des Arrays:

int[] myIntArray = new int[]{1,2,3};

Aber dieses dritte zeigt die Eigenschaft der anonymen Array-Objekterstellung, auf die eine Referenzvariable "myIntArray" zeigt. Wenn wir also nur "new int [] {1,2,3}" schreiben; dann kann auf diese Weise ein anonymes Array-Objekt erstellt werden.

Wenn wir nur schreiben:

int[] myIntArray;

Dies ist keine Deklaration des Arrays, aber die folgende Anweisung vervollständigt die obige Deklaration:

myIntArray=new int[3];

2
Es gibt absolut keinen Unterschied zwischen dem zweiten und dem dritten Ansatz, außer dass der zweite Ansatz nur funktioniert, wenn Sie auch eine Variable deklarieren. Es ist nicht klar, was Sie unter "Zeigt die Eigenschaft der anonymen Array-Objekterstellung" verstehen, aber es handelt sich tatsächlich um äquivalente Codeteile.
Jon Skeet

4
Auch der erste Schnipsel tut das Array initialisieren - es wird garantiert , um den Wert 0 für jedes Array - Element haben.
Jon Skeet

Gibt es wirklich keinen Unterschied zwischen dem zweiten und dem dritten Ansatz?
Truthadjustr

27

Alternative,

// Either method works
String arrayName[] = new String[10];
String[] arrayName = new String[10];

Das deklariert ein Array mit arrayNameder Größe 10 (Sie müssen die Elemente 0 bis 9 verwenden).


7
Was ist der Standard, für den verwendet werden soll? Ersteres habe ich gerade erst entdeckt und finde es schrecklich irreführend: |
Anti Erde

2
Für das, was es wert ist, sagte mein Professor, dass der zweite Weg in Java typischer ist und dass er besser vermittelt, was los ist; als Array in Bezug auf den Typ, in den die Variable umgewandelt wurde.
Celeritas

2
Für eine Randnotiz: Eine Sprache mit mehr als einer Semantik, um eine Sache zu deklarieren, die schlechtes Sprachdesign bedeutet.
Muhammad Suleman

26

Für den Fall, dass Sie etwas Dynamischeres wünschen, gibt es die List-Oberfläche. Dies funktioniert nicht so gut, ist aber flexibler:

List<String> listOfString = new ArrayList<String>();

listOfString.add("foo");
listOfString.add("bar");

String value = listOfString.get(0);
assertEquals( value, "foo" );

2
Wie heißt das "<>" in der von Ihnen erstellten Liste?
Zypern

@CyprUS Listist eine generische Klasse, in der ein Typ als Parameter eingeschlossen ist <>. Dies ist hilfreich, da Sie einen generischen Typ nur einmal definieren müssen und ihn dann mit mehreren verschiedenen Typen verwenden können. Eine ausführlichere Erklärung finden Sie unter docs.oracle.com/javase/tutorial/java/generics/types.html
Heimdall

15

Es gibt zwei Möglichkeiten, ein Array zu erstellen:

Dieser für ein leeres Array:

int[] array = new int[n]; // "n" being the number of spaces to allocate in the array

Und dieses für ein initialisiertes Array:

int[] array = {1,2,3,4 ...};

Sie können auch mehrdimensionale Arrays wie folgt erstellen:

int[][] array2d = new int[x][y]; // "x" and "y" specify the dimensions
int[][] array2d = { {1,2,3 ...}, {4,5,6 ...} ...};

11

Nehmen Sie intzum Beispiel den primitiven Typ . Es gibt verschiedene Möglichkeiten zum Deklarieren und intArrangieren:

int[] i = new int[capacity];
int[] i = new int[] {value1, value2, value3, etc};
int[] i = {value1, value2, value3, etc};

wo in all diesen können Sie int i[]anstelle von verwenden int[] i.

Mit Reflexion können Sie verwenden (Type[]) Array.newInstance(Type.class, capacity);

Beachten Sie, dass in Methodenparametern ...angibt variable arguments. Im Wesentlichen ist eine beliebige Anzahl von Parametern in Ordnung. Mit Code ist es einfacher zu erklären:

public static void varargs(int fixed1, String fixed2, int... varargs) {...}
...
varargs(0, "", 100); // fixed1 = 0, fixed2 = "", varargs = {100}
varargs(0, "", 100, 200); // fixed1 = 0, fixed2 = "", varargs = {100, 200};

Innerhalb der Methode varargswird als normal behandelt int[]. Type...kann nur in Methodenparametern verwendet werden, int... i = new int[] {}wird also nicht kompiliert.

Beachten Sie, dass Sie beim Übergeben von int[]an eine Methode (oder eine andere Type[]) nicht den dritten Weg verwenden können. In der Anweisung int[] i = *{a, b, c, d, etc}*geht der Compiler davon aus, dass das {...}bedeutet an int[]. Das liegt aber daran, dass Sie eine Variable deklarieren. Wenn Sie ein Array an eine Methode übergeben, muss die Deklaration entweder new Type[capacity]oder sein new Type[] {...}.

Mehrdimensionale Arrays

Mehrdimensionale Arrays sind viel schwieriger zu handhaben. Im Wesentlichen ist ein 2D-Array ein Array von Arrays. int[][]bedeutet ein Array von int[]s. Der Schlüssel ist, dass wenn ein int[][]als deklariert ist int[x][y], der maximale Index ist i[x-1][y-1]. Ein Rechteck int[3][5]ist im Wesentlichen :

[0, 0] [1, 0] [2, 0]
[0, 1] [1, 1] [2, 1]
[0, 2] [1, 2] [2, 2]
[0, 3] [1, 3] [2, 3]
[0, 4] [1, 4] [2, 4]


9

Wenn Sie Arrays mit Reflexionen erstellen möchten, können Sie Folgendes tun:

 int size = 3;
 int[] intArray = (int[]) Array.newInstance(int.class, size ); 

Warum sollten Sie auf diese Weise ein Array erstellen?
Dorian Gray

9

Deklarieren eines Arrays von Objektreferenzen:

class Animal {}

class Horse extends Animal {
    public static void main(String[] args) {

        /*
         * Array of Animal can hold Animal and Horse (all subtypes of Animal allowed)
         */
        Animal[] a1 = new Animal[10];
        a1[0] = new Animal();
        a1[1] = new Horse();

        /*
         * Array of Animal can hold Animal and Horse and all subtype of Horse
         */
        Animal[] a2 = new Horse[10];
        a2[0] = new Animal();
        a2[1] = new Horse();

        /*
         * Array of Horse can hold only Horse and its subtype (if any) and not
           allowed supertype of Horse nor other subtype of Animal.
         */
        Horse[] h1 = new Horse[10];
        h1[0] = new Animal(); // Not allowed
        h1[1] = new Horse();

        /*
         * This can not be declared.
         */
        Horse[] h2 = new Animal[10]; // Not allowed
    }
}

7

Array ist eine sequentielle Liste von Elementen

int item = value;

int [] one_dimensional_array = { value, value, value, .., value };

int [][] two_dimensional_array =
{
  { value, value, value, .. value },
  { value, value, value, .. value },
    ..     ..     ..        ..
  { value, value, value, .. value }
};

Wenn es ein Objekt ist, dann ist es das gleiche Konzept

Object item = new Object();

Object [] one_dimensional_array = { new Object(), new Object(), .. new Object() };

Object [][] two_dimensional_array =
{
  { new Object(), new Object(), .. new Object() },
  { new Object(), new Object(), .. new Object() },
    ..            ..               ..
  { new Object(), new Object(), .. new Object() }
};

Bei Objekten müssen Sie sie entweder zuweisen null, um sie mit new Type(..)Klassen wie Stringund zu initialisieren. Dies Integersind Sonderfälle, die wie folgt behandelt werden

String [] a = { "hello", "world" };
// is equivalent to
String [] a = { new String({'h','e','l','l','o'}), new String({'w','o','r','l','d'}) };

Integer [] b = { 1234, 5678 };
// is equivalent to
Integer [] b = { new Integer(1234), new Integer(5678) };

Im Allgemeinen können Sie Arrays erstellen, die Mdimensional sind

int [][]..[] array =
//  ^ M times [] brackets

    {{..{
//  ^ M times { bracket

//            this is array[0][0]..[0]
//                         ^ M times [0]

    }}..}
//  ^ M times } bracket
;

Es ist erwähnenswert, dass das Erstellen eines Mdimensionalen Arrays räumlich teuer ist. Wenn Sie ein Mdimensionales Array mit Nallen Dimensionen erstellen , ist die Gesamtgröße des Arrays größer als N^M, da jedes Array eine Referenz hat und in der M-Dimension ein (M-1) -dimensionales Array von Referenzen vorhanden ist. Die Gesamtgröße ist wie folgt

Space = N^M + N^(M-1) + N^(M-2) + .. + N^0
//      ^                              ^ array reference
//      ^ actual data

7

In Java 8 können Sie dies verwenden.

String[] strs = IntStream.range(0, 15)  // 15 is the size
    .mapToObj(i -> Integer.toString(i))
    .toArray(String[]::new);

6

Zum Erstellen von Arrays von Klassenobjekten können Sie die verwenden java.util.ArrayList. So definieren Sie ein Array:

public ArrayList<ClassName> arrayName;
arrayName = new ArrayList<ClassName>();

Weisen Sie dem Array Werte zu:

arrayName.add(new ClassName(class parameters go here);

Lesen Sie aus dem Array:

ClassName variableName = arrayName.get(index);

Hinweis:

variableNameist ein Verweis auf das Array, was bedeutet, dass durch Manipulieren variableNamemanipuliert wirdarrayName

für Schleifen:

//repeats for every value in the array
for (ClassName variableName : arrayName){
}
//Note that using this for loop prevents you from editing arrayName

for-Schleife, mit der Sie bearbeiten können arrayName(herkömmliche for-Schleife):

for (int i = 0; i < arrayName.size(); i++){
    //manipulate array here
}

5

Deklarieren und initialisieren Sie für Java 8 und höher. Erstellen Sie ein einfaches Integer-Array:

int [] a1 = IntStream.range(1, 20).toArray();
System.out.println(Arrays.toString(a1));
// Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Erstellen Sie ein zufälliges Array für ganze Zahlen zwischen [-50, 50] und für doppelte [0, 1E17]:

int [] a2 = new Random().ints(15, -50, 50).toArray();
double [] a3 = new Random().doubles(5, 0, 1e17).toArray();

Zweierpotenz-Sequenz:

double [] a4 = LongStream.range(0, 7).mapToDouble(i -> Math.pow(2, i)).toArray();
System.out.println(Arrays.toString(a4));
// Output: [1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0]

Für String [] müssen Sie einen Konstruktor angeben:

String [] a5 = Stream.generate(()->"I will not squeak chalk").limit(5).toArray(String[]::new);
System.out.println(Arrays.toString(a5));

Mehrdimensionale Arrays:

String [][] a6 = List.of(new String[]{"a", "b", "c"} , new String[]{"d", "e", "f", "g"})
    .toArray(new String[0][]);
System.out.println(Arrays.deepToString(a6));
// Output: [[a, b, c], [d, e, f, g]]

Sind -50 und / oder +50 tatsächlich enthalten? Das heißt, ist das Innere an einem oder beiden Enden offen?
Peter Mortensen

1
-50 ist enthalten und +50 ist ausgeschlossen. Diese Informationen aus Java API "gegeben Herkunft (einschließlich) und gebunden (exklusiv)." Ich benutze die Intervalldeklaration aus dem Wiki . Also ich denke es wird korrekter sein [-50, 50)
Kirill Podlivaev

3

Eine andere Möglichkeit, ArrayList zu deklarieren und zu initialisieren:

private List<String> list = new ArrayList<String>(){{
    add("e1");
    add("e2");
}};

2

Hier gibt es viele Antworten. Ich füge ein paar knifflige Möglichkeiten hinzu, um Arrays zu erstellen (aus Sicht der Prüfung ist es gut, dies zu wissen).

  1. Deklarieren und definieren Sie ein Array

    int intArray[] = new int[3];

    Dadurch wird ein Array der Länge 3 erstellt. Da es den primitiven Typ int enthält, werden alle Werte standardmäßig auf 0 gesetzt. Zum Beispiel,

    intArray[2]; // Will return 0
  2. Verwenden von Klammern [] vor dem Variablennamen

    int[] intArray = new int[3];
    intArray[0] = 1;  // Array content is now {1, 0, 0}
  3. Initialisieren Sie das Array und stellen Sie Daten bereit

    int[] intArray = new int[]{1, 2, 3};

    Diesmal muss die Größe in der Boxhalterung nicht erwähnt werden. Auch eine einfache Variante davon ist:

    int[] intArray = {1, 2, 3, 4};
  4. Ein Array der Länge 0

    int[] intArray = new int[0];
    int length = intArray.length; // Will return length 0

    Ähnliches gilt für mehrdimensionale Arrays

    int intArray[][] = new int[2][3];
    // This will create an array of length 2 and
    //each element contains another array of length 3.
    // { {0,0,0},{0,0,0} }
    int lenght1 = intArray.length; // Will return 2
    int length2 = intArray[0].length; // Will return 3

Verwenden von Klammern vor der Variablen:

    int[][] intArray = new int[2][3];

Es ist absolut in Ordnung, wenn Sie am Ende eine Boxhalterung anbringen:

    int[] intArray [] = new int[2][4];
    int[] intArray[][] = new int[2][3][4]

Einige Beispiele

    int [] intArray [] = new int[][] {{1,2,3},{4,5,6}};
    int [] intArray1 [] = new int[][] {new int[] {1,2,3}, new int [] {4,5,6}};
    int [] intArray2 [] = new int[][] {new int[] {1,2,3},{4,5,6}}
    // All the 3 arrays assignments are valid
    // Array looks like {{1,2,3},{4,5,6}}

Es ist nicht zwingend erforderlich, dass jedes innere Element dieselbe Größe hat.

    int [][] intArray = new int[2][];
    intArray[0] = {1,2,3};
    intArray[1] = {4,5};
    //array looks like {{1,2,3},{4,5}}

    int[][] intArray = new int[][2] ; // This won't compile. Keep this in mind.

Wenn Sie die obige Syntax verwenden, müssen Sie sicherstellen, dass Sie in Vorwärtsrichtung die Werte in Klammern angeben müssen. Sonst wird es nicht kompiliert. Einige Beispiele:

    int [][][] intArray = new int[1][][];
    int [][][] intArray = new int[1][2][];
    int [][][] intArray = new int[1][2][3];

Ein weiteres wichtiges Merkmal ist die Kovariante

    Number[] numArray = {1,2,3,4};   // java.lang.Number
    numArray[0] = new Float(1.5f);   // java.lang.Float
    numArray[1] = new Integer(1);    // java.lang.Integer
   // You can store a subclass object in an array that is declared
   // to be of the type of its superclass.
   // Here 'Number' is the superclass for both Float and Integer.

   Number num[] = new Float[5]; // This is also valid

WICHTIG: Für referenzierte Typen ist der im Array gespeicherte Standardwert null.


2

Sie können es auch tun mit java.util.Arrays:

List<String> number = Arrays.asList("1", "2", "3");

Out: ["1", "2", "3"]

Dieser ist ziemlich einfach und unkompliziert.


Ich habe es in anderen Antworten nicht gesehen, also dachte ich, ich könnte es hinzufügen.
Sylhare

1
Eine Liste ist kein Array
Tirno

Manchmal meinen Leute Arrays, wenn sie eine Liste wollen.
Sylhare


1

Array hat zwei Grundtypen.

Statisches Array: Array mit fester Größe (seine Größe sollte beim Start deklariert werden und kann später nicht mehr geändert werden)

Dynamisches Array: Hierfür wird keine Größenbeschränkung berücksichtigt. (Reine dynamische Arrays gibt es in Java nicht. Stattdessen wird List am meisten empfohlen.)

Verwenden Sie die folgenden Deklarations- und Initialisierungsanweisungen, um ein statisches Array aus Integer, String, Float usw. zu deklarieren.

    int[] intArray = new int[10]; 
    String[] intArray = new int[10]; 
    float[] intArray = new int[10]; 
    
   // here you have 10 index starting from 0 to 9

Um dynamische Funktionen verwenden zu können, müssen Sie List ... List verwenden. List ist ein reines dynamisches Array, und es ist nicht erforderlich, die Größe zu Beginn zu deklarieren. Unten ist der richtige Weg, um eine Liste in JAVA> zu deklarieren

        ArrayList<String> myArray = new ArrayList<String>();
        myArray.add("Value 1: something");
        myArray.add("Value 2: something more");


1
Vielen Dank an Matheus für die Verbesserung meiner Antworten. Ich würde Sie bitten, dies zu verbessern, damit dies mehr Benutzer erreichen kann.
Zia Muhammad

0

Array deklarieren: int[] arr;

Array initialisieren: int[] arr = new int[10];10 steht für die Anzahl der im Array zulässigen Elemente

Mehrdimensionales Array deklarieren: int[][] arr;

Mehrdimensionales Array initialisieren: int[][] arr = new int[10][17];10 Zeilen und 17 Spalten und 170 Elemente, da 10 mal 17 170 ist.

Das Initialisieren eines Arrays bedeutet, die Größe des Arrays anzugeben.


0

Es ist sehr einfach, ein Array zu deklarieren und zu initialisieren. Sie möchten beispielsweise fünf ganzzahlige Elemente, 1, 2, 3, 4 und 5, in einem Array speichern. Sie können dies folgendermaßen tun:

ein)

int[] a = new int[5];

oder

b)

int[] a = {1, 2, 3, 4, 5};

Das Grundmuster für die Initialisierung und Deklaration nach Methode a) lautet also:

datatype[] arrayname = new datatype[requiredarraysize];

datatype sollte in Kleinbuchstaben sein.

Das Grundmuster für die Initialisierung und Deklaration nach Methode a lautet also:

Wenn es sich um ein String-Array handelt:

String[] a = {"as", "asd", "ssd"};

Wenn es sich um ein Zeichenarray handelt:

char[] a = {'a', 's', 'w'};

Bei float double entspricht das Format des Arrays der Ganzzahl.

Zum Beispiel:

double[] a = {1.2, 1.3, 12.3};

Wenn Sie das Array jedoch mit "Methode a" deklarieren und initialisieren, müssen Sie die Werte manuell oder per Schleife oder Ähnlichem eingeben.

Wenn Sie dies jedoch mit "Methode b" tun, müssen Sie die Werte nicht manuell eingeben.


0

Das Array kann abhängig von der Definition des Arrays primitive Datentypen sowie Objekte einer Klasse enthalten. Bei primitiven Datentypen werden die tatsächlichen Werte an zusammenhängenden Speicherstellen gespeichert. Bei Objekten einer Klasse werden die tatsächlichen Objekte im Heap-Segment gespeichert.


Eindimensionale Arrays:
Die allgemeine Form einer eindimensionalen Array-Deklaration lautet

type var-name[];
OR
type[] var-name;

Instanziieren eines Arrays in Java

var-name = new type [size];

Zum Beispiel

    int intArray[];    //declaring array
    intArray = new int[20];  // allocating memory to array
    // the below line is equals to line1 + line2
    int[] intArray = new int[20]; // combining both statements in one
     int[] intArray = new int[]{ 1,2,3,4,5,6,7,8,9,10 }; 
    // accessing the elements of the specified array
    for (int i = 0; i < intArray.length; i++)
    System.out.println("Element at index " + i + " : "+ intArray[i]);

Ref: https://www.geeksforgeeks.org/arrays-in-java/


0

einander volles Beispiel mit Filmen Klasse 😋

public class A {

        public static void main(String[] args) {

                class Movie{

                    String movieName;
                    String genre;
                    String movieType;
                    String year;
                    String ageRating;
                    String rating;

                    public Movie(String [] str)
                    {
                        this.movieName = str[0];
                        this.genre = str[1];
                        this.movieType = str[2];
                        this.year = str[3];
                        this.ageRating = str[4];
                        this.rating = str[5];    
                    }

                }

                String [] movieDetailArr = {"Inception", "Thriller", "MovieType", "2010", "13+", "10/10"};

                Movie mv = new Movie(movieDetailArr);

                System.out.println("Movie Name: "+ mv.movieName);
                System.out.println("Movie genre: "+ mv.genre);
                System.out.println("Movie type: "+ mv.movieType);
                System.out.println("Movie year: "+ mv.year);
                System.out.println("Movie age : "+ mv.ageRating);
                System.out.println("Movie  rating: "+ mv.rating);


            }

        } 

-1
int[] x=new int[enter the size of array here];

Beispiel:

int[] x=new int[10];

oder

int[] x={enter the elements of array here];

Beispiel:

int[] x={10,65,40,5,48,31};

-7
int[] SingleDimensionalArray = new int[2]

int[][] MultiDimensionalArray = new int[3][4]

6
Während dieser Code die Frage beantworten kann, ist es besser zu erklären, wie er das Problem löst, ohne andere vorzustellen, und warum er verwendet wird. Nur-Code-Antworten sind auf lange Sicht nicht sinnvoll.
Bono
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.