Jak zainicjować tablicę w Javie

Jak zainicjować tablicę w Javie
Tablica w Javie to struktura danych, która ma kolejne elementy tego samego typu. Elementy są indeksowane, zaczynając od zera. W Javie tablica to obiekt uzyskany z klasy obiektowej. Istnieją trzy sposoby tworzenia tablicy: tablica można zadeklarować (utworzyć) bez zdefiniowanej długości. W tym przypadku nadal należy zdefiniować długość tablicy. Można utworzyć tablicę, z długością zdefiniowaną i automatycznie zainicjowaną z wartościami domyślnymi typu tablicy. Tablicę można utworzyć z praktycznymi wartościami przypisanymi do elementów tablicy. W takim przypadku długość tablicy jest pośrednio zdefiniowana przez liczbę wartości praktycznych.

W tym artykule ilustruje trzy sposoby inicjowania tablicy za pomocą typu prymitywnego, typu ciągów i typu zdefiniowanego przez użytkownika. Typ ciągu i typy zdefiniowane przez użytkownika to typy referencyjne. Artykuł rozpoczyna się od inicjalizacji tablicy z pierwotnym typem.

Inicjowanie tablicy z pierwotnym typem

Typ zwęglenia zostanie użyty tutaj. char oznacza charakter. Inne prymitywne typy są wykonywane w ten sam sposób. Cały kod w tej sekcji odbywa się w metodzie Main (). Twierdzenie,

char [] arr;

deklaruje tablicę bez żadnej wartości początkowej i bez liczby wskazanych znaków. Liczba znaków dla tablicy to długość tablicy. Po ustaleniu długości pozostaje w ten sposób do końca programu. Kolejne stwierdzenie jest potrzebne wraz z tym, aby nadać długość tej tablicy, w następujący sposób:

char [] arr;
Arr = nowy Char [5];

Teraz liczba znaków (długość) tablicy wynosi 5. Pewna inicjalizacja miała miejsce w drugim stwierdzeniu. Nie jest to jednak praktyczna inicjalizacja. Jest to inicjalizacja z 5 wartościami domyślnymi dla char. Domyślną wartością dla char jest pusta znak, i.mi. ”, Nie ma miejsca.

Następny segment kodu przypisuje jedną praktyczną wartość (znak) do każdej lokalizacji pamięci, 5 zmiennych znaków tablicy:

arr [0] = 'f';
ARR [1] = „g”;
arr [2] = „h”;
arr [3] = „i”;
arr [4] = „j”;

To jest zadanie lub zamiennik. To nie jest inicjalizacja. Inicjalizacja została wykonana z wartościami domyślnymi. Powyższe dwa oświadczenia deklaracji można wykonać w jednym stwierdzeniu, jak następuje:

char [] arr = nowy char [5];

Nazwa tablicy to ARR. Char to zarezerwowane słowo na char, które pojawia się po obu stronach operatora przypisania. Nowy to kolejny operator. Tworzy obiekt z wartościami domyślnymi. Drugi kwadratowy wspornik w całym oświadczeniu ma długość tablicy. W tym momencie każdy element tablicy nadal musi mieć wartość praktyczną. To jest drugi sposób ogłoszenia tablicy.

Trzeci sposób deklarowania tablicy obejmuje inicjalizację wartości praktycznych. Jest w dwóch formach, jak następuje:

char [] arr = „f”, „g”, „h”, „i”, „j ';

Lub

char [] arr = nowy char [] „f”, „g”, „h”, „i”, „j ';

Pierwszy formularz ma literał tablicy, który nazywa się inicjatorem tablicy. Jest w aparat ortodontyczny. Każda postać jest w jednym cytacie. Inicjalizator tablicy pośrednio określa długość tablicy (liczba elementów). Pierwszy formularz nie ma nowego operatora. Drugi formularz ma nowego operatora. Jednak tutaj drugie kwadratowe nawiasy nie mają długości tablicy, ponieważ długość jest ukryta w inicjalizatorze tablicy, zakodowanej obok.

Inicjowanie szeregu ciągów

Obiekt ciągu jest bardzo dobrym przykładem typu odniesienia w Javie. Istnieją dwa rodzaje typów w Javie: typy prymitywne i referencyjne. Prymitywne typy to: boolean, bajt, char, short, int, długi, podwójny, float. Poniższe stwierdzenie deklaruje szereg ciągów bez określonej długości i jakiejkolwiek wartości początkowej (czy to domyślnie, czy praktyczne).

String [] arr;

Kolejne stwierdzenie jest potrzebne wraz z tym, aby nadać długość tej tablicy, w następujący sposób:

String [] arr;
arr = nowy ciąg [4];

Teraz liczba ciąży (odniesień) tablicy wynosi 4. Pewna inicjalizacja miała miejsce w drugim stwierdzeniu. Nie jest to jednak praktyczna inicjalizacja. Jest to inicjalizacja z 4 wartościami domyślnymi dla ciągu. Wartość domyślna dla ciągu to NULL, bez cytatów. Poniższy kod w metodzie main () ilustruje to:

String [] arr;
arr = nowy ciąg [4];
dla (int i = 0; i<4; i++)
System.na zewnątrz.print (ARR [i]); System.na zewnątrz.wydrukować(");

System.na zewnątrz.println ();

Wyjście to:

Null Null Null Null

Poniższy segment kodu przypisuje jedną praktyczną wartość (odniesienie do ciągu) do każdej lokalizacji pamięci, 4 zmiennych ciągów tablicy:

ARR [0] = „One”;
ARR [1] = „Two”;
ARR [2] = „trzy”;
ARR [3] = „Four”;

To jest zadanie lub zamiennik. To nie jest inicjalizacja. Inicjalizacja została wykonana z wartościami domyślnymi. Powyższe dwa oświadczenia deklaracji można wykonać w jednym stwierdzeniu, jak następuje:

String [] arr = nowy ciąg [4];

Nazwa tablicy to ARR. String jest zarezerwowanym słowem dla ciągu, które pojawia się po obu stronach operatora przypisania. Nowy to kolejny operator. Tworzy tablicę obiektów z wartościami domyślnymi. W całym stwierdzeniu drugi nawias kwadratowy ma długość tablicy. W tym momencie każdy element tablicy nadal musi mieć wartość praktyczną. To był drugi sposób ogłoszenia tablicy.

Trzeci sposób deklarowania tablicy obejmuje inicjalizację wartości praktycznych. Jest w dwóch formach, jak następuje:

String [] arr = „one”, „dwa”, „trzy”, „cztery”;

Lub

String [] arr = nowy String [] „One”, „dwa”, „trzy”, „cztery”;

Pierwszy formularz ma literał tablicy, który nazywa się inicjatorem tablicy. Jest w aparat ortodontyczny. Każda postać jest w jednym cytacie. Inicjalizator tablicy pośrednio określa długość tablicy (liczba elementów). Pierwszy formularz nie ma nowego operatora. Drugi formularz ma nowego operatora. Jednak tutaj drugi nawias kwadratowy nie ma długości tablicy, ponieważ długość jest ukryta w inicjalizatorze tablicy, zakodowanej obok.

UWAGA: Aby użyć ciągu lub tablicy w Javie, ani klasa ciągów, ani klasa tablicy nie muszą zostać zaimportowane.

Obiekty zdefiniowane przez użytkownika

Poniżej znajduje się przykład klasy zdefiniowanej przez użytkownika:

klasa Aclass
int prop;
int mthd ()
rekwizyt zwrotny;

Aclass to nazwa klasy, z której zostaną utworzone jej obiekty.

W funkcji Main () można zastosować następujące segmenty kodu:

Aclass obj1 = new aclass ();
OBJ1.Prop = 1;
int ret1 = obj1.mthd ();
System.na zewnątrz.println (ret1);
Aclass obj2 = new aclass ();
OBJ2.Prop = 2;
int ret2 = obj2.mthd ();
System.na zewnątrz.println (RET2);
Aclass obj3 = new aclass ();
OBJ3.Prop = 3;
int ret3 = obj3.mthd ();
System.na zewnątrz.println (RET3);

Każdy segment kodu tworzy obiekt typu, Aclass. Każdy to obiekt zdefiniowany przez użytkownika. Każdy segment kodu przypisuje liczbę całkowitą do właściwości (pola) każdego obiektu. Istnieją trzy różne obiekty tej samej klasy. Każdy segment kodu wywołuje swoją metodę dla swojego obiektu. Dane wyjściowe dla trzech segmentów kodu powinny wynosić: 1 2 3, z każdą liczbą w osobnej linii.

Deklaracja tablicy typu klasy zdefiniowanej przez użytkownika odbywa się w taki sam sposób, jak w powyższych przypadkach. Na przykład,

Aclass [] arr = new aclass [3];

deklaruje tablicę trzech obiektów typu, aclass. Ta instrukcja utworzyła tablicę zainicjowaną z domyślną wartością typu. Dla dowolnego typu odniesienia, w tym typu ciągu, wartość domyślna jest null. Oznacza to, że w tablicy, arr, są trzy wartości null. Poniższy kod w Main () powinien to udowodnić:

Aclass [] arr = new aclass [3];
dla (int i = 0; i<3; i++)
System.na zewnątrz.print (ARR [i]); System.na zewnątrz.wydrukować(");

System.na zewnątrz.println ();

Wyjście to:

NULL NULL NULL

Poniższe stwierdzenie inicjuje tablicę z praktycznymi obiektami typu Aclass:

Aclass [] arr = obj1, obj2, obj3;
To stwierdzenie jest bardzo poprawne. Niestety, następujący segment kodu, drukuje kody, zamiast OBJ1, OBJ2 i OBJ3:
Aclass [] arr = obj1, obj2, obj3;
dla (int i = 0; i<3; i++)
System.na zewnątrz.print (ARR [i]); System.na zewnątrz.wydrukować(");

System.na zewnątrz.println ();

Wyjście to:

Aclass@6ff3c5b5 Aclass@3764951d Aclass@4B1210EE

trzy różne kody. Powodem tego jest to, że tablica oczekuje literałów obiektowych, ale podano odniesienia obiektowe.

W powyższej procedurze nazwy obiektów, OBJ1, OBJ2 i OBJ3, zostały (utworzone) przed zapisaniem ich do tablicy. Aby obejść ten problem, utworzyć obiekty jako elementy tablicy, bez ich nazwisk, w następujący sposób:

Aclass [] arr = new aclass (), new aclass (), new aclass ();

Stąd, zamiast używać nazw obiektów, OBJ1, OBJ2 OBJ3, aby uzyskać dostęp do właściwości i metod, użyj wskaźników tablicy w następujący sposób:

ARR [0].Prop i ARR [0].mthd (); ARR [1].Prop i ARR [1].mthd (); ARR [2].Prop i ARR [2].mthd ();

Rozwiązuje problem. I tak powyższe trzy segmenty kodu można przepisać jako:

Aclass [] arr = new aclass (), new aclass (), new aclass ();
ARR [0].Prop = 1;
int ret1 = ARR [0].mthd ();
System.na zewnątrz.println (ret1);
ARR [1].Prop = 2;
int ret2 = ARR [1].mthd ();
System.na zewnątrz.println (RET2);
ARR [2].Prop = 3;
int ret3 = ARR [2].mthd ();
System.na zewnątrz.println (RET3);

A ostateczna oczekiwana wydajność jest taka jak poprzednio, to znaczy: 1 2 3, z każdą liczbą we własnej linii.

Wniosek

Istnieją dwa rodzaje rodzajów w Javie: prymitywne typy i typy referencyjne. Tablicę można zadeklarować bez żadnej wartości i długości elementu. Tablicę można zadeklarować swoją długością, ale zainicjowana do wartości domyślnych przez kompilator. Tablicę można zadeklarować, zainicjować wartości praktycznymi. Jeśli wartości są odniesieniami, a literałów nie można użyć jako wartości, wartości tablicy powinny być tworzeniem instancji klasy.