introduction java arrays
Tento výukový program představuje koncept polí v Javě. Také jsme představili související témata jako délka, datové typy, klonování, kopírování, třídění atd. V rámci Java Arrays:
V programování vždy pracujete s daty. Data je třeba ukládat na paměťová místa a aby k nim bylo možné čas od času přistupovat a odpovídajícím způsobem je zpracovat, musí být pojmenována. To se děje pomocí proměnných.
Pokud tedy chcete uložit hodnotu 10 do paměti, deklarujete proměnnou typu int a uložíte hodnotu jako int num = 10;
Nyní předpokládejme, že váš programový požadavek je takový, že potřebujete 10 proměnných typu int.
V tomto případě budete muset deklarovat 10 proměnných typu int takto:
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
Výše uvedená prohlášení kladou zbytečné břemeno údržby na programátora. Místo deklarace tolika proměnných, co takhle deklarovat jednu proměnnou a potom mít všech těchto 10 hodnot přiřazených této proměnné? To je to, co uděláme, když definujeme pole a přiřadíme mu hodnoty.
Začněme s poli v Javě.
Co se naučíte:
- Java pole
- Závěr
Java pole
Pole nejsou nic jiného než datová struktura, která se používá k postupnému uchovávání datových prvků stejného typu. Z výše uvedeného příkladu můžete změnit definici deseti proměnných na jednu proměnnou a uložit všech deset hodnot pomocí indexů.
Udělejme to níže uvedeným způsobem:
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;
Uložili jsme všech deset hodnot do indexové proměnné. První index začíná od 0. Takže první hodnota je na 0thindex a poslední hodnota je 9thindex. Tyto indexy se také nazývají dolní indexy.
V paměti počítače bude výše uvedené pole A reprezentováno jako:
Nyní můžeme definovat pole jako proměnnou, která je kolekcí prvků stejného datového typu a uložena na sousedních paměťových místech. Velikost pole je určena v době deklarace, a proto je velikost pevná.
Pole, o kterých v tomto kurzu pojednáme, jsou pevná nebo statická pole. Java také podporuje dynamická pole zvaná „ArrayList“, jejichž velikost lze měnit za chodu. O ArrayList budeme podrobně diskutovat později.
Některé z charakteristik polí v Javě jsou uvedeny níže:
- V Javě je Array objekt vytvořený z dynamicky generované třídy.
- Interně pole Java implementuje rozhraní Serializable a Cloneable.
- Pole Java má jako nadřazenou třídu také třídu objektů.
- V polích Java můžete ukládat předdefinované a odvozené hodnoty typu.
- Můžete získat délku pole pomocí člena délky a nikoli velikosti jako v C / C ++.
- Java umožňuje jedno i vícerozměrné pole.
V tomto tutoriálu představíme čtenáři všechny koncepty polí, které chystáme
k pokrytí v této sérii na Java Arrays.
Začněme!!
Java Array - tvorba a inicializace
Aby bylo možné je použít v programu, je třeba vytvořit pole. Vytváření polí zahrnuje zadání datového typu prvků, které pole pojme, a také počet prvků, které bude pole obsahovat.
Budeme diskutovat o vytváření polí různými způsoby a také různými metodami, pomocí kterých můžeme pole inicializovat.
Níže je uveden příklad jedné z metod použitých k vytvoření a inicializaci pole.
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ýstup:
V tomto programu jsme deklarovali pole int a poté jej vytvořili pomocí new. Pak jsme inicializovali prvky na indexech 0 a 1 s hodnotami 1 a 3.
Nakonec vytiskneme všechny prvky pole. Všimněte si, že prvky, které jsme neinicializovali, mají výchozí hodnoty jako 0, protože typ pole je int.
Tisk prvků v poli Java
Pokud se v programech používají pole, je nutné je zobrazit. K zobrazení prvků pole používáme speciální metody jako smyčka for, smyčka forEach, metoda toString třídy Arrays atd. Toto téma zahrnuje všechny různé metody používané pro tisk prvků pole.
Níže je uveden program, který používá k tisku prvků pole metodu toString třídy ‚Arrays '.
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ýstup:
Délka pole v Javě
Délka pole označuje počet prvků přítomných v poli. Na rozdíl od C / C ++, kde k získání délky pole používáme operátor „sizeof“, má pole Java vlastnost „length“. Později prozkoumáme více o této vlastnosti.
Níže je uveden program, který zobrazuje délku pole.
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ýstup:
V tomto programu jsme inicializovali pole pomocí pole literál a poté pomocí vlastnosti délka zobrazíme velikost / délku pole.
Datové typy Java Array
Můžete mít pole všech datových typů. V tomto tématu prozkoumáme pole s různými datovými typy a jejich definicemi.
V níže uvedeném programu jsme definovali pole typu int a typu řetězce a zobrazili jejich pří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ýstup:
Přidání prvku do pole
Přidání prvku do pole je důležitá operace. Pole v Javě jsou statická a pevné délky. Proto je třeba zadat konkrétní sadu operací pro přidání nového prvku do pole. Zde budou probrány různé způsoby přidání prvku do pole.
Jednou z metod přidání prvku do pole je použití ArrayList jako mezilehlé struktury. Převádíme pole na ArrayList. Pak přidáme prvek do ArrayList a změníme ArrayList zpět na pole.
Níže uvedený program ukazuje tuto implementaci.
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ýstup:
Odebrat / Odstranit prvek z pole
Odebrání prvku z pole je také další hlavní operací. Java nám neumožňuje přímo odebrat prvek. K tomu tedy využíváme další možnosti.
Níže je uvedena implementace jedné z metod odebrat prvek z pole pomocí 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ýstup:
Zde nejprve převedeme pole na ArrayList a poté prvek odstraníme pomocí metody ArrayList remove. Poté převedeme ArrayList zpět na pole a vydáme změněné pole.
Kopírování pole v Javě
Budeme diskutovat o některých operacích kopírování prvků pole z jednoho pole do druhého. Budeme také diskutovat o mělkém a hlubokém kopírování polí.
Jednou z takových metod je metoda copyOf () třídy Arrays balíčku 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ýstup:
Metoda ‚copyOf 'třídy Arrays zkopíruje pole zadané jako argument spolu s jeho délkou do jiného pole.
Klonování pole v Javě
Můžete také vytvořit klon pole v Javě. Java k tomu poskytuje metodu v balíčku ArrayUtils. Zde prozkoumáme více o klonování.
Pojďme implementovat jednoduchý příklad, který klonuje pole v Javě.
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ýstup:
Klonování tedy pouze kopíruje pomocí jiné metody.
Třídění polí v Javě
Třídění prvků pole nebo jejich řazení ve vzestupném nebo sestupném pořadí je jednou z důležitých operací. Většina aplikací vyžaduje třídění svých dat. Java poskytuje třídění filtrů pro pole. Podrobně o tom budeme diskutovat v rámci třídění.
Následuje jednoduchý příklad s orting an array in Jave using Arrays.sort () method .
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ýstup:
Jak je uvedeno výše, metoda třídění třídy Arrays třídí prvky pole ve vzestupném pořadí.
Obrátit pole v Javě
Obrácení sekvence prvků také není poskytováno poli. Stejně jako odebrání musíme udělat nějaký obrat a dosáhnout výsledků. V tomto tématu uvidíme metody obrácení pole.
Následující program ukazuje implementace obrácení pole .
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ýstup:
Výjimka ArrayIndexOutOfBounds
Při pokusu o přístup k prvkům pole nad zadanou délku nebo záporný index kompilátor vyvolá výjimku „ArrayIndexOutOfBounds“. Více o této výjimce prozkoumáme v našem souvisejícím tématu.
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ýstup :
Ve výše uvedeném programu máme ArrayList se dvěma položkami a pokusíme se získat položku na indexu 2, která neexistuje. Proto program dává výjimku IndexOutofBounds.
Pole Java String a různé metody
Ze všech datových typů podporovaných Javou je nejdůležitější String. Proto si pole typu String také zaslouží zvláštní diskusi. Vzhledem k tomu, že data obsažená v řetězcovém poli jsou většinou textová, existují různé metody manipulace s textem.
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ýstup:
Toto je základní program pro pole řetězců. Právě jsme deklarovali řetězcové pole a jeho obsah jsme zobrazili pomocí smyčky forEach.
Vícerozměrná pole v Javě
Zatím jsme viděli pouze jednorozměrná pole. Java také podporuje vícerozměrná pole mající prvky většinou uspořádané do řádků a sloupců. Pole v Javě jsou složitější, protože každý prvek pole může obsahovat další pole.
Zde prozkoumáme vícerozměrná pole v Javě spolu s jejich konkrétními operacemi.
Pojďme implementovat příklad dvourozměrného pole.
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ýstup:
Pole Java objektů
Kromě ukládání primitivních typů mohou pole Java také ukládat objekty. V tomto tématu prozkoumáme několik příkladů řady objektů.
Jeden příklad je uveden níže.
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ýstup:
Můžeme mít pole obsahující prvky jako objekty. Ve výše uvedeném programu máme řadu objektů třídy Test. Individuálně voláme členské funkce pro každý objekt, abychom nastavili a zobrazili hodnoty.
Vrátit pole v Javě
Stejným způsobem, ve kterém vrátíme proměnnou z jakékoli metody, můžeme vrátit také pole. Podobně můžeme předat pole metodě. Obě tyto možnosti zde probereme na příkladech.
Obvykle je odkaz na pole předán do / z metody.
Následující program demonstruje návrat pole v Javě .
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ýstup:
Ve výše uvedeném programu provádíme dvě operace, tj. Sčítání a odčítání dvou čísel. Výsledek každé operace je uložen jako prvek v poli. Pak je odkaz na celé pole vrácen do volající funkce.
Třída Java Array
Třída pole Java je třída z balíčku java.util, která poskytuje funkce pro manipulaci s poli. Poskytuje mnoho funkcí, jako je kopírování pole, třídění, převod pole na řetězec atd.
Generické pole Java
V Javě jsme již viděli generika, která jsou typově nezávislými entitami. Pole Java mohou být obecná a lze je definovat jako nezávislá na typech. Obecný kód však není k dispozici, když je generován bajtový kód, a proto je obtížné odvodit typ prvku, pole bude držet za běhu.
Takže namísto polí přejdeme na seznamy z rámce kolekcí Java, kdykoli budete potřebovat generika.
Můžeme však mít také obecnou strukturu pole pomocí jedné nebo více metod. Zde prozkoumáme tyto metody.
Níže je uveden příklad jedné z metod využívajících pole objektů.
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ýstup:

Takže ve výše uvedeném programu jsme napsali obecnou třídu pole s objektovým polem jako prvkem a metody get / set k získání / nastavení objektů pole. Také jsme přepsali metodu toString třídy Arrays. Ve třídě Main vytvoříme dva objekty třídy generického pole typu Integer a String a přiřadíme jim příslušné hodnoty.
Jagged Arrays In Java
Jagged arrays are multidimensional arrays with each member array of different sizes. Jagged pole je také příkladem řady polí.
Následující program ukazuje příklad pole Jagged.
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ýstup:

Ve výše uvedeném programu máme 2D pole. První dimenze pole je 4, zatímco druhá je 2. Výstup ukazuje obsah obou dimenzí zubatého pole.
Pole v Javě 8
Jelikož Java 8 byla hlavní verzí Javy, projdeme změny, které přinesla do polí. Například, streamy na polích byly zavedeny v prostředí Java 8.
Importujte pole v Javě
sql otázky a odpovědi pro zkušené
Můžeme zahrnout další funkce pro pole v Javě importem třídy ‚Arrays 'balíčku‚ java.util ‘.
Můžeme také importovat balíček arrayutils pro další funkce. Z našich předchozích příkladů jste museli získat více informací o funkcích importu.
Java Array API a dokumentace
Java array API je kolekce všech funkcí, které působí na pole Java. Projdeme si toto aplikační programovací rozhraní (API) zde.
Konečně jsme uvedli všechny vlastnosti a metody spolu s jejich popisem pro pole Java. To pomůže čtenářům s rychlou referencí.
Často kladené otázky
Otázka č. 1) Jsou pole primitivní datové typy v Javě?
Odpovědět: Ne. Pole nejsou primitivní datové typy, ale pole jsou objekty kontejneru, které obsahují prvky stejného datového typu na sousedících místech.
Otázka 2) Jsou referenční typy polí v Javě?
Odpovědět: Ano. Pole je kontejnerem objektů a je považováno za odkazy.
Otázka č. 3) Můžete v Javě zvětšit velikost pole?
Odpovědět: Ne. Deklarujete pole a vytvoříte instanci podle velikosti. Po zadání nelze změnit velikost pole.
Závěr
V tomto kurzu jsme vám představili koncept polí v Javě. Diskutovali jsme o hlavních tématech souvisejících s poli Java.
V našich dalších cvičeních podrobně prozkoumáme tato témata související s Array v Javě.
Šťastné učení !!
Doporučené čtení
- Java DataTypes, Loops, Arrays, Switch a Assertions
- Výjimky Java a zpracování výjimek s příklady
- Výukový program Java Generics s příklady
- Výukový program pro rozhraní Java a abstrakt třídy s příklady
- Úvod do programovacího jazyka Java - výukový program
- Výukový program Java String s funkcí String Buffer a String Builder
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- Vícedimenzionální pole a zubatá pole v C #