introduction java arrays
Tento výukový program predstavuje koncept polí v Jave. V rámci Java Arrays sme tiež predstavili súvisiace témy ako dĺžka, dátové typy, klonovanie, kopírovanie, triedenie atď.
V programovaní sa vždy zaoberáte údajmi. Dáta je potrebné ukladať na pamäťové miesta a aby k nim mohol z času na čas dôjsť a zodpovedajúcim spôsobom ich spracovať, musí byť pomenovaný nejakým menom. To sa deje pomocou premenných.
Ak teda chcete uložiť hodnotu 10 do pamäte, vyhlásite premennú typu int a hodnotu uložíte ako int num = 10;
Teraz predpokladajme, že vaša programová požiadavka je taká, že potrebujete 10 premenných typu int.
V takom prípade budete musieť deklarovať 10 premenných typu int takto:
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
Vyššie uvedené vyhlásenia budú zbytočne zaťažovať údržbu programátora. Čo keby ste deklarovali toľko premenných, čo tak deklarovať jednu premennú a potom mať všetkých týchto 10 hodnôt priradených k tejto premennej? To je to, čo urobíme, keď definujeme pole a priradíme mu hodnoty.
Začnime s poľami v Jave.
Čo sa dozviete:
- Java Array
- Záver
Java Array
Polia nie sú ničím iným ako dátovou štruktúrou, ktorá sa používa na postupné uchovávanie dátových prvkov rovnakého typu. Z vyššie uvedeného príkladu môžete zmeniť definíciu desiatich premenných na jednu premennú a uložiť všetkých desať hodnôt pomocou indexov.
Urobme to nasledujúcim spôsobom:
A (0) = 1;
A (1) = 2;
A (2) = 3;
A (3) = 4;
A (4) = 5;
A (5) = 6;
A (6) = 7;
A (7) = 8;
A (8) = 9;
A (9) = 10;
Všetkých desať hodnôt sme uložili do indexovej premennej. Prvý index začína od 0. Takže prvá hodnota je na 0thindex a posledná hodnota je na 9thindex. Tieto indexy sa tiež nazývajú dolné indexy.
V pamäti počítača bude vyššie uvedené pole A predstavované ako:
devops engineer rozhovor otázky a odpovede
Teraz môžeme definovať pole ako premennú, ktorá je kolekciou prvkov rovnakého dátového typu a uložená na susedných pamäťových miestach. Veľkosť poľa je určená v čase deklarácie, a preto je veľkosť pevná.
Polia, o ktorých sa budeme v tomto tutoriále rozprávať, sú polia s pevnou veľkosťou alebo statické pole. Java podporuje aj dynamické polia zvané „ArrayList“, ktorých veľkosť sa dá meniť za behu. O ArrayList sa budeme podrobne rozprávať neskôr.
Niektoré z charakteristík polí v Jave sú uvedené nižšie:
- V Jave je pole objekt inštancovaný z dynamicky generovanej triedy.
- Vnútorne pole Java implementuje rozhranie Serializable a Cloneable.
- Pole Java má ako svoju nadradenú triedu aj triedu objektov.
- Integrované a odvodené hodnoty typu môžete ukladať do polí Java.
- Dĺžku poľa môžete získať pomocou člena dĺžky a nie veľkosti ako v C / C ++.
- Java umožňuje jedno aj viacrozmerné polia.
V tomto tutoriáli predstavíme čitateľovi všetky pojmy poľa, ktoré ideme
na pokrytie v tejto sérii na Java Arrays.
Začnime!!
Java Array - tvorba a inicializácia
Aby ste ich mohli použiť v programe, je potrebné vytvoriť polia. Vytváranie polí obsahuje špecifikáciu dátového typu prvkov, ktoré bude matica obsahovať, ako aj počet prvkov, ktoré bude matica obsahovať.
Budeme diskutovať o vytváraní polí rôznymi spôsobmi a tiež rôznymi metódami, pomocou ktorých môžeme pole inicializovať.
Nižšie je uvedený príklad jednej z metód použitých na vytvorenie a inicializáciu poľa.
public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('myArray(0):' + myArray(0)); System.out.println('myArray(1):' + myArray(1)); System.out.println('myArray(2):' + myArray(2)); System.out.println('myArray(3):' + myArray(3)); System.out.println('myArray(4):' + myArray(4)); } }
Výkon:
V tomto programe sme deklarovali pole int a potom sme ho vytvorili pomocou nového. Potom sme inicializovali prvky na indexoch 0 a 1 s hodnotami 1, respektíve 3.
Nakoniec vytlačíme všetky prvky poľa. Všimnite si, že prvky, ktoré sme neinicializovali, majú predvolené hodnoty 0, pretože typ poľa je int.
Tlač prvkov v poli Java
Keď sa v programoch používajú polia, musia sa zobraziť. Na zobrazenie prvkov poľa používame špeciálne metódy ako slučka for, forEach loop, metóda toString triedy Arrays atď. Táto téma obsahuje všetky rôzne metódy používané na tlač prvkov poľa.
Nižšie je uvedený program, ktorý používa metódu toString triedy ‘Arrays’ na tlač prvkov poľa.
import java.util.*; public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('Array Elements : ' + Arrays.toString(myArray)); } }
Výkon:
Dĺžka poľa v Jave
Dĺžka poľa označuje počet prvkov prítomných v poli. Na rozdiel od C / C ++, kde na získanie dĺžky poľa používame operátor „sizeof“, pole Java má vlastnosť „length“. Neskôr sa podrobnejšie pozrieme na túto nehnuteľnosť.
Ďalej je uvedený program, ktorý zobrazuje dĺžku poľa.
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; System.out.println('Size of the given array : ' + myArray.length); } }
Výkon:
V tomto programe sme inicializovali pole pomocou poľa literál a potom pomocou vlastnosti dĺžka zobrazíme veľkosť / dĺžku poľa.
Dátové typy Java Array
Môžete mať pole všetkých dátových typov. V tejto téme preskúmame polia s rôznymi typmi údajov a ich definíciami.
V nižšie uvedenom programe sme definovali polia typu int a reťazca a zobrazili ich príslušný obsah .
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; String() strArray = {'one','two','three','four','five'}; System.out.println('Elements of int array : ' + Arrays.toString(myArray)); System.out.println('Elements of String array : ' + Arrays.toString(strArray)); } }
Výkon:
Pridanie prvku do poľa
Pridanie prvku do poľa je dôležitá operácia. Polia v prostredí Java sú statické a majú pevnú dĺžku. Preto je potrebné poskytnúť špecifickú sadu operácií na pridanie nového prvku do poľa. Tu sa bude diskutovať o rôznych metódach pridania prvku do poľa.
Jednou z metód pridania prvku do poľa je použitie ArrayList ako prostrednej štruktúry. Pole prevádzame na ArrayList. Potom pridáme prvok do ArrayList a zmeníme ArrayList späť na pole.
Nasledujúci program ukazuje túto implementáciu.
import java.util.*; class Main { public static void main(String() args) { int n = 10; int i; Integer intArray() = { 1, 2, 3, 4, 5 }; System.out.println('Original Array:
' + Arrays.toString(intArray)); int num = 10; Listintlist = new ArrayList(Arrays.asList(intArray)); intlist.add(num); intArray = intlist.toArray(intArray); System.out.println('
Array after adding ' + num + '
' + Arrays.toString(intArray)); } }
Výkon:
najlepší špionážny softvér pre mobilný telefón pre Android
Odstrániť / Odstrániť prvok z poľa
Odstránenie prvku z poľa je tiež ďalšou významnou operáciou. Java nám neumožňuje priamo odstrániť prvok. Využívame teda ďalšie možnosti, ako to dosiahnuť.
Ďalej je uvedená implementácia jednej z metód odstrániť prvok z poľa pomocou ArrayList .
import java.util.*; importjava.util.stream.*; class Main { public static void main(String() args) { int() tensArray = { 10,20,30,40,50}; System.out.println('Input Array: '+ Arrays.toString(tensArray)); int index = 1; System.out.println('Index to be removed: ' + index); if (tensArray == null || index = tensArray.length) { System.out.println('No element to delete'); } ListtensList = IntStream.of(tensArray).boxed().collect(Collectors.toList()); tensList.remove(index); tensArray = tensList.stream().mapToInt(Integer::intValue).toArray(); System.out.println('Array after deleting element at '+ index + ':
'+ Arrays.toString(tensArray)); } }
Výkon:
Tu najskôr prevedieme pole na ArrayList a potom odstránime prvok pomocou metódy ArrayList remove. Potom prevedieme ArrayList späť na pole a na výstup pošleme zmenené pole.
Kopírovanie poľa v Jave
Budeme diskutovať o niektorých operáciách kopírovania prvkov poľa z jedného poľa do druhého. Budeme tiež diskutovať o plytkom a hlbokom kopírovaní polí.
Jednou z takýchto metód je metóda copyOf () triedy Arrays balíka java.util .
import java.util.*; public class Main { public static void main(String() args) { int() intArray = {10,15,20,25,30,35,40}; int array_len = intArray.length; System.out.println('Original Array:' + Arrays.toString(intArray)); int() copy_intArray = Arrays.copyOf(intArray, array_len); System.out.println('Copied Array:' + Arrays.toString(copy_intArray)); } }
Výkon:
Metóda ‘copyOf’ triedy Arrays skopíruje pole určené ako argument spolu s jeho dĺžkou do iného poľa.
Klonovanie poľa v prostredí Java
Klon poľa môžete vytvoriť aj v prostredí Java. Java poskytuje metódu na to v balíku ArrayUtils. Tu preskúmame viac o klonovaní.
Poďme si implementovať jednoduchý príklad, ktorý klonuje pole v Jave.
import java.util.*; class Main { public static void main(String args()) { int num_Array() = {5,10,15,20,25,30}; int clone_Array() = num_Array.clone(); System.out.println('Original num_Array:' + Arrays.toString(num_Array)); System.out.println('Cloned num_Array:'+ Arrays.toString(clone_Array)); } }
Výkon:
Klonovanie teda iba kopíruje pomocou inej metódy.
Triedenie polí v Jave
Triedenie prvkov poľa alebo ich zoradenie vzostupne alebo zostupne je jednou z dôležitých operácií. Väčšina aplikácií vyžaduje zoradenie svojich údajov. Java poskytuje zoradenie filtrov pre polia. Budeme o tom podrobne diskutovať v rámci triedenia.
Nasleduje jednoduchý príklad s alebo usporiadanie poľa v Jave pomocou metódy Arrays.sort () .
import java.util.Arrays; public class Main { public static void main(String() args) { int() num_Array = {115,32,56,78,94,108,100,63}; System.out.println('Original Array: ' + Arrays.toString(num_Array)); Arrays.sort(num_Array); System.out.println('Sorted Array: ' + Arrays.toString(num_Array)); } }
Výkon:
Ako je uvedené vyššie, metóda triedenia triedy Arrays triedi prvky poľa vo vzostupnom poradí.
Obrátiť pole v Jave
Obrátenie postupnosti prvkov tiež neposkytujú polia. Rovnako ako odstránenie, musíme urobiť nejaký obrat a dosiahnuť výsledky. V tejto téme uvidíme metódy na obrátenie poľa.
Nasledujúci program zobrazuje implementácia reverzácie poľa .
import java.util.*; public class Main { public static void main(String() args) { Integer () even_Arrayr = {2,4,6,8,10}; System.out.println('Original Array:' + Arrays.asList(even_Arrayr)); Collections.reverse(Arrays.asList(even_Arrayr)); System.out.println('Reversed Array:' + Arrays.asList(even_Arrayr)); } }
Výkon:
Výnimka ArrayIndexOutOfBounds
Pri pokuse o prístup k prvkom poľa presahujúcim zadanú dĺžku alebo záporný index kompilátor vloží výnimku „ArrayIndexOutOfBounds“. Viac o tejto výnimke sa budeme zaoberať v našej súvisiacej téme.
import java.util.ArrayList; public class Main { public static void main(String() args) { ArrayListmyList = new ArrayList(); myList.add('one'); myList.add('two'); System.out.println(myList.get(2)); } }
Výkon :
Vo vyššie uvedenom programe máme ArrayList s dvoma položkami a pokúsime sa získať položku na indexe 2, ktorá neexistuje. Preto program poskytuje výnimku IndexOutofBounds.
Pole Java String a rôzne metódy
Medzi všetkými dátovými typmi podporovanými Javou je najdôležitejší String. Z tohto dôvodu si pole typu String tiež zaslúži osobitnú diskusiu. Pretože údaje obsiahnuté v reťazci sú väčšinou textové, existujú rôzne spôsoby manipulácie s textom.
import java.util.ArrayList; public class Main { public static void main(String() args) { String() rgb = {'Red', 'Green', 'Blue'}; System.out.println('The string array elements:'); for (String item: rgb) { System.out.print(item + ' '); } } }
Výkon:
Toto je základný program pre pole reťazcov. Práve sme deklarovali reťazcové pole a jeho obsah sme zobrazili pomocou slučky forEach.
Viacrozmerné polia v Jave
Doteraz sme videli iba jednorozmerné polia. Java podporuje aj viacrozmerné polia, ktoré majú prvky väčšinou usporiadané v riadkoch a stĺpcoch. Polia v Jave sú zložitejšie, pretože každý prvok poľa môže obsahovať ďalšie pole.
Budeme tu skúmať viacrozmerné polia spolu s ich konkrétnymi operáciami.
Uveďme si príklad dvojrozmerného poľa.
class Main { public static void main(String args()) { // declaring and initializing 2D array int array_2d()() = { {1,2,3},{4,5,6},{7,8,9} }; System.out.println('The two-dimensional array is as follows:'); for (int i=0; i<3 ; i++) { for (int j=0; j < 3 ; j++) System.out.print(array_2d(i)(j) + ' '); System.out.println(); } }
Výkon:
Pole súborov Java
Okrem ukladania primitívnych typov môžu polia Java ukladať aj objekty. V tejto téme preskúmame niektoré príklady radu objektov.
Jeden príklad je uvedený nižšie.
class Main{ public static void main(String args()){ Test testobj() = new Test(2) ; testobj(0) = new Test(); testobj(1) = new Test(); testobj(0).setData(1,3); testobj(1).setData(2,4); System.out.println('For Array Element 0 (testobj(0)):'); testobj(0).displayData(); System.out.println('For Array Element 1 (testobj(1)):'); testobj(1).displayData(); } } class Test{ int val1; int val2; public void setData(int c,int d){ val1=c; val2=d; } public void displayData(){ System.out.print('val1 ='+val1 + '; val2 ='+val2 + '
'); } }
Výkon:
Môžeme mať polia obsahujúce prvky ako objekty. Vo vyššie uvedenom programe máme pole objektov triedy Test. Individuálne voláme členské funkcie pre každý objekt, aby sme nastavili a zobrazili hodnoty.
Return An Array In Java
Rovnakým spôsobom, keď vrátime premennú z ktorejkoľvek metódy, môžeme vrátiť aj pole. Podobne môžeme metóde odovzdať pole. Obe tieto možnosti tu budú diskutované na príkladoch.
Zvyčajne sa odkaz na pole odovzdáva metóde / z nej.
Nasledujúci program demonštruje návrat poľa v Jave .
class Main { static int() add_sub(int val1, int val2) { int() result = new int(2); result(0) = val1 + val2; result(1) = val1 - val2; return result; } public static void main(String() args) { int() result = add_sub(10, 5); System.out.println('val1 + val2 = ' + result(0)); System.out.println('val1 - val2 = ' + result(1)); } }
Výkon:
Vo vyššie uvedenom programe vykonávame dve operácie, tj. Sčítanie a odčítanie dvoch čísel. Výsledok každej operácie je uložený ako prvok v poli. Potom sa celý odkaz na pole vráti do volajúcej funkcie.
Trieda Java Array
Trieda poľa Java je trieda z balíka java.util, ktorá poskytuje funkcie na manipuláciu s poľami. Poskytuje mnoho funkcií, ako je kopírovanie poľa, triedenie, konverzia poľa na reťazec atď.
Generické pole Java
V Jave sme už videli generiká, ktoré sú typovo nezávislými entitami. Polia Java môžu byť všeobecné a môžu byť definované ako nezávislé od typov. Ale generický kód nie je k dispozícii, keď je generovaný bajtový kód, a preto je ťažké odvodiť typ prvku, ktorý bude pole držať za behu.
Preto namiesto polí prechádzame na zoznamy z rámca zbierok Java vždy, keď sú potrebné generiká.
Môžeme však mať aj všeobecnú štruktúru poľa pomocou jednej alebo viacerých metód. Tu preskúmame tieto metódy.
Nižšie je uvedený príklad jednej z metód využívajúcich pole objektov.
import java.util.Arrays; class Main { public static void main(String() args) { final int length = 5; //integer array object from Generic_Array class Generic_ArrayintArray = new Generic_Array(length); for (int i = 0; i Výkon:
Vo vyššie uvedenom programe sme teda napísali všeobecnú triedu poľa s objektovým poľom ako prvkom a metódy get / set na získanie / nastavenie objektov poľa. Tiež sme prepísali metódu toString triedy Arrays. V triede Main vytvoríme dva objekty triedy generických polí typu Integer a String a priradíme im príslušné hodnoty.
Zubaté polia v Jave
Zúbkované polia sú viacrozmerné polia s každým pole členov rôznych veľkostí. Zúbkované pole je tiež príkladom poľa.
Nasledujúci program zobrazuje príklad zubatého poľa.
class Main { public static void main(String() args) { int jagged_array()() = new int(2)(); jagged_array(0) = new int(4); jagged_array(1) = new int(2); for (int i=0; i Výkon:
Vo vyššie uvedenom programe máme 2D pole. Prvý rozmer poľa je 4, zatiaľ čo druhý má hodnotu 2. Výstup zobrazuje obsah oboch rozmerov zubatého poľa.
Polia v prostredí Java 8
Pretože Java 8 bola hlavným vydaním Javy, prejdeme si zmeny, ktoré priniesla do polí. Napríklad, streamy na poliach boli zavedené v prostredí Java 8.
Importovať pole v Jave
Môžeme zahrnúť ďalšie funkcie pre polia v Jave importom triedy ‘Arrays’ balíka ‘java.util’.
Môžeme tiež importovať balík arrayutils pre viac funkcií. Z našich predchádzajúcich príkladov ste museli získať viac poznatkov o funkcii importu.
Java Array API a dokumentácia
Java array API je kolekcia všetkých funkcií, ktoré pôsobia na polia Java. Tu si prejdeme toto aplikačné programovacie rozhranie (API).
Nakoniec sme uviedli všetky vlastnosti a metódy spolu s ich popisom pre polia Java. Čitateľom to pomôže pri rýchlom odkaze.
často kladené otázky
Otázka č. 1) Sú polia primitívne dátové typy v Jave?
Odpoveď: Nie. Polia nie sú primitívne dátové typy, ale polia sú kontajnerové objekty, ktoré obsahujú prvky rovnakého dátového typu na susedných miestach.
Otázka 2) Sú referenčné typy polí v Jave?
Odpoveď: Áno. Pole je kontajnerom objektov a považuje sa za odkazy.
Otázka č. 3) Môžete zväčšiť veľkosť poľa v Jave?
Odpoveď: Nie. Vyhlásite polia a vytvoríte z nich veľkosť. Po zadaní nemôžete zmeniť veľkosť poľa.
Záver
V tomto návode sme vám predstavili koncept polí v Jave. Diskutovali sme o hlavných témach spojených s poľami Java.
ako nájsť súbory apk v systéme Android
V našich ďalších tutoriáloch podrobne preskúmame tieto témy súvisiace s Array v Jave.
Šťastné učenie !!
Odporúčané čítanie
- Java dátové typy, slučky, polia, prepínače a tvrdenia
- Výnimky Java a spracovanie výnimiek s príkladmi
- Výukový program Java Generics s príkladmi
- Výukový program pre rozhranie Java a abstraktnú triedu s príkladmi
- Úvod do programovacieho jazyka Java - videonávod
- Výukový program Java String s programom String Buffer a String Builder
- Výukový program JAVA pre začiatočníkov: viac ako 100 praktických výučbových programov Java Video
- MultiDimenzionálne polia a zubaté polia v C #