introduction java arrays
Aquest tutorial presenta el concepte de matrius a Java. També hem introduït temes relacionats com ara Longitud, tipus de dades, clonació, còpia, ordenació, etc. a les matrius de Java:
A la programació, sempre es tracta de dades. Les dades s’han d’emmagatzemar a ubicacions de memòria i per accedir-hi de tant en tant i processar-les en conseqüència, se li ha de donar algun nom. Això es fa mitjançant variables.
ajuda a les preguntes i respostes de l’entrevista
Per tant, si voleu emmagatzemar el valor 10 a la memòria, declarareu una variable de tipus int i emmagatzemareu el valor com int num = 10;
Ara suposem que el vostre requisit del programa és tal que necessiteu 10 variables de tipus int.
En aquest cas, haureu de declarar 10 variables de tipus int de la següent manera:
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
Les declaracions anteriors suposaran una càrrega innecessària de manteniment per al programador. En lloc de declarar tantes variables, què hi ha de declarar una sola variable i després assignar tots aquests 10 valors a aquesta variable? Això és el que farem quan definim una matriu i li assignem valors.
Comencem per matrius a Java.
Què aprendreu:
- Matriu de Java
- Java Array: creació i inicialització
- Imprimeix elements en matriu de Java
- Longitud de matriu a Java
- Tipus de dades de matriu de Java
- Matriu de cadenes de Java i diversos mètodes
- Matrius multidimensionals a Java
- Matriu d’objectes de Java
- Torna una matriu a Java
- Classe Java Array
- Matrius a Java 8
- Preguntes freqüents
- Conclusió
Matriu de Java
Les matrius no són altra cosa que una estructura de dades que s’utilitza per contenir els elements de dades del mateix tipus de manera seqüencial. A partir de l'exemple anterior, podeu canviar la definició de deu variables en una sola variable i emmagatzemar tots els deu valors mitjançant subíndexs.
Fem-ho de la manera següent:
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;
Hem emmagatzemat els deu valors en una variable basada en índexs. El primer índex comença a partir de 0. Per tant, el primer valor és a 0thíndex i l’últim valor és a 9thíndex. Aquests índexs també s’anomenen subíndexs.
A la memòria de l'ordinador, la matriu A anterior es representarà com:
Ara podem definir una matriu com una variable que és una col·lecció d'elements del mateix tipus de dades i emmagatzemats a ubicacions de memòria contigües. La mida d'una matriu s'especifica en el moment de la declaració i, per tant, la mida és fixa.
Les matrius que tractarem en aquest tutorial són matrius de mida fixa o estàtiques. Java també admet matrius dinàmics anomenats 'ArrayList' la mida dels quals es pot modificar sobre la marxa. Més endavant discutirem detalladament ArrayList.
A continuació es detallen algunes de les característiques de les matrius a Java:
- A Java, una matriu és un objecte instantani d'una classe generada dinàmicament.
- Internament, la matriu Java implementa interfícies serialitzables i clonables.
- Java array també té la classe objecte com a classe pare.
- Podeu emmagatzemar valors de tipus incorporats i derivats en matrius de Java.
- Podeu obtenir la longitud d’una matriu mitjançant un membre de longitud i no sizeof com a C / C ++.
- Java permet matrius tant individuals com multidimensionals.
En aquest tutorial, introduirem tots els conceptes de matriu al lector que anem
per tractar en aquesta sèrie sobre Java Arrays.
Comencem!!
Java Array: creació i inicialització
Cal crear matrius per utilitzar-los al programa. La creació de matrius inclou especificar el tipus de dades d'elements que contindrà la matriu, així com el nombre d'elements que contindrà la matriu.
Discutirem la creació de matrius de diverses maneres i també de diferents mètodes amb els quals podem inicialitzar matrius.
A continuació es mostra un exemple d’un dels mètodes utilitzats per a la creació i inicialització de matrius.
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)); } }
Sortida:
En aquest programa, hem declarat una matriu int i, a continuació, la vam crear amb una nova. A continuació, hem inicialitzat elements als índexs 0 i 1 amb valors 1 i 3 respectivament.
Finalment, imprimim tots els elements de la matriu. Tingueu en compte que els elements que no hem inicialitzat tenen valors per defecte com 0 ja que el tipus de matriu és int.
Imprimeix elements en matriu de Java
Quan s’utilitzen matrius en programes, és probable que es mostrin. Per mostrar elements de matriu, utilitzem mètodes especials com per a bucle, per a cada bucle, mètode toString de la classe Arrays, etc. Aquest tema inclou tots els mètodes utilitzats per imprimir elements de matriu.
A continuació es mostra un programa que utilitza el mètode toString de la classe 'Arrays' per imprimir elements de matriu.
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)); } }
Sortida:
Longitud de matriu a Java
La longitud d'una matriu indica el nombre d'elements presents a la matriu. A diferència de C / C ++, on fem servir l’operador ‘sizeof’ per obtenir la longitud de la matriu, la matriu Java té la propietat ‘length’. Explorarem més detalls sobre aquesta propietat més endavant.
A continuació es mostra el programa que mostra la longitud d'una matriu.
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); } }
Sortida:
En aquest programa, hem inicialitzat la matriu utilitzant la matriu literal i, a continuació, mitjançant la propietat length mostrem la mida / longitud de la matriu.
Tipus de dades de matriu de Java
Podeu tenir matrius de tots els tipus de dades. En aquest tema, explorarem matrius amb diferents tipus de dades i les seves definicions.
Al programa següent, hem definit matrius de tipus int i string i hem mostrat el seu contingut respectiu .
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)); } }
Sortida:
Afegir un element a una matriu
L’addició d’un element a la matriu és una operació important. Les matrius de Java són estàtiques i de longitud fixa. Per tant, heu de proporcionar un conjunt específic d’operacions per afegir un element nou a la matriu. Els diversos mètodes per afegir un element a la matriu es tractaran aquí.
Un dels mètodes per afegir un element a la matriu és utilitzar ArrayList com a estructura intermèdia. Convertim la matriu a ArrayList. A continuació, afegim l'element a l'ArrayList i tornem a canviar l'ArrayList a array.
El programa següent mostra aquesta 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)); } }
Sortida:
Traieu / suprimiu un element d'una matriu
Eliminar un element d'una matriu també és una altra operació important. Java no ens permet eliminar directament un element. Per tant, fem servir altres opcions per fer-ho.
A continuació es mostra la implementació d’un dels mètodes per elimineu l'element d'una matriu mitjançant una llista Array .
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)); } }
Sortida:
Aquí, primer convertim la matriu a ArrayList i després eliminem l'element mitjançant el mètode ArrayList remove. Després d'això, convertim ArrayList de nou a la matriu i generem la matriu modificada.
Copiant una matriu a Java
Discutirem algunes de les operacions per copiar elements de matriu d'una matriu a una altra. També parlarem de la còpia profunda i profunda de matrius.
Un d’aquests mètodes és el mètode copyOf () de la classe Arrays del paquet 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)); } }
Sortida:
El mètode 'copyOf' de la classe Arrays copia la matriu especificada com a argument juntament amb la seva longitud a una altra matriu.
Clonació d'una matriu a Java
També podeu crear un clon d'una matriu a Java. Java proporciona un mètode per a això al paquet ArrayUtils. Explorarem més informació sobre la clonació aquí.
Implantem un exemple senzill que clona una matriu a Java.
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)); } }
Sortida:
Per tant, la clonació és només copiar amb un mètode diferent.
Ordenació de matrius a Java
Ordenar els elements de la matriu o ordenar-los en ordre ascendent o descendent és una de les operacions importants. La majoria de les aplicacions necessiten ordenar les seves dades. Java proporciona un tipus de filtre per a matrius. En parlarem detalladament a la classificació.
A continuació es mostra un exemple senzill de s orting una matriu a Jave mitjançant el mètode 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)); } }
Sortida:
Com es mostra més amunt, el mètode d'ordenació de la classe Arrays ordena els elements de la matriu en ordre ascendent.
Inverteix una matriu a Java
La inversió de la seqüència d'elements tampoc no és proporcionada per les matrius. Igual que eliminar, hem de fer alguns canvis i aconseguir els resultats. En aquest tema, veurem els mètodes per invertir una matriu.
El programa següent mostra el fitxer implementació de Reversing a array .
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)); } }
Sortida:
Excepció ArrayIndexOutOfBounds
Quan intenteu accedir als elements de la matriu més enllà de la longitud especificada o un índex negatiu, el compilador llança l'excepció 'ArrayIndexOutOfBounds'. Explorarem més sobre aquesta excepció al nostre tema relacionat.
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)); } }
Sortida :
Al programa anterior, tenim una ArrayList amb dues entrades i intentem que l’entrada a l’índex 2 no existeixi. Per tant, el programa ofereix una excepció IndexOutofBounds.
Matriu de cadenes de Java i diversos mètodes
Entre tots els tipus de dades admesos per Java, String és el més important. Per tant, la matriu de tipus String també mereix una discussió especial. Com que les dades contingudes en una matriu de cadenes són majoritàriament de text, hi ha diversos mètodes proporcionats per manipular el text.
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 + ' '); } } }
Sortida:
Aquest és un programa bàsic per a la matriu de cadenes. Acabem de declarar una matriu de cadenes i de mostrar-ne el contingut mitjançant el bucle forEach.
Matrius multidimensionals a Java
Fins ara només hem vist matrius unidimensionals. Java també admet matrius multidimensionals que tenen elements disposats principalment en files i columnes. Les matrius a Java són més complexes ja que cada element de la matriu pot contenir una altra matriu.
Aquí explorarem matrius multidimensionals a Java juntament amb les seves operacions específiques.
Implantem un exemple de matriu bidimensional.
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(); } }
Sortida:
Matriu d’objectes de Java
A més d'emmagatzemar tipus primitius, les matrius java també poden emmagatzemar objectes. En aquest tema, explorarem alguns exemples d'una sèrie d'objectes.
A continuació es dóna un exemple.
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 + '
'); } }
Sortida:
Podem tenir matrius que contenen elements com a objectes. Al programa anterior, tenim una matriu d’objectes de la classe Test. Cridem de manera individual funcions de membre per a cada objecte per establir i mostrar els valors.
Torna una matriu a Java
De la mateixa manera, en què retornem una variable de qualsevol mètode, també podem retornar una matriu. De la mateixa manera, podem passar una matriu a un mètode. Ambdues possibilitats es discutiran amb exemples aquí.
Normalment, una referència a la matriu es passa a / des d’un mètode.
El programa següent mostra el retorn d'una matriu a Java .
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)); } }
Sortida:
Al programa anterior, realitzem dues operacions, és a dir, suma i resta de dos nombres. El resultat de cada operació s’emmagatzema com a element a la matriu. A continuació, tota la referència de la matriu es torna a la funció de trucada.
Classe Java Array
La classe de matriu Java és una classe del paquet java.util que proporciona la funcionalitat per manipular matrius. Proporciona moltes funcions com copiar una matriu, ordenar, convertir una matriu en cadena, etc.
Matriu genèrica de Java
Ja hem vist genèrics a Java que són entitats independents del tipus. Les matrius Java poden ser genèriques en què es poden definir com a independents dels tipus. Però el codi genèric no està disponible quan es genera el codi de bytes i, per tant, és difícil deduir el tipus d'element, la matriu es mantindrà en temps d'execució.
Així, en lloc de matrius, canviem a llistes del marc de col·leccions Java sempre que es requereixin genèrics.
Tot i això, també podem tenir una estructura de matriu semblant a un genèric emprant un o més mètodes. Aquí explorarem aquests mètodes.
A continuació es mostra un exemple d’un dels mètodes que fan servir matrius d’objectes.
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 Sortida:
Així doncs, al programa anterior, hem escrit una classe de matriu genèrica amb matriu d’objectes com a element i mètodes get / set per obtenir / establir objectes de matriu. També hem anul·lat el mètode toString de la classe Arrays. A la classe Main, creem dos objectes d’una classe de matriu genèrica de tipus Integer i String i els assignem els valors adequats.
Matrius dentats a Java
Les matrius dentades són matrius multidimensionals amb cada matriu de membres de diferents mides. Una matriu dentada també és un exemple d'una matriu de matrius.
El programa següent mostra un exemple de la matriu dentada.
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 Sortida:
Tenim una matriu 2D al programa anterior. La primera dimensió de la matriu és 4, mentre que la segona és 2. La sortida mostra el contingut de les dues dimensions de la matriu dentada.
Matrius a Java 8
Com que Java 8 va ser una versió important de Java, revisarem els canvis que va produir a les matrius. Per exemple, els fluxos en matrius es van introduir a Java 8.
Importa matriu a Java
Podem incloure funcionalitats addicionals per a matrius a Java important la classe ‘Matrius’ del paquet ‘java.util’.
També podem importar el paquet arrayutils per obtenir més funcionalitats. Heu d’haver adquirit més coneixement sobre la funcionalitat d’importació dels nostres exemples anteriors.
API i documentació de Java Array
L’API de matriu de Java és un recull de totes les funcions que actuen sobre les matrius de Java. Anirem a través d’aquesta interfície de programació d’aplicacions (API) aquí.
Finalment hem llistat totes les propietats i mètodes juntament amb la seva descripció per a matrius de Java. Això ajudarà els lectors a fer una referència ràpida.
Preguntes freqüents
P # 1) Hi ha tipus de dades primitius de matrius a Java?
Resposta: No. Les matrius no són tipus de dades primitives, però les matrius són objectes contenidors que contenen elements del mateix tipus de dades en ubicacions contigües.
P # 2) Hi ha tipus de referència de matrius a Java?
Resposta: Sí. La matriu és un contenidor d'objectes i es tracta com a referències.
P # 3) Podeu augmentar la mida d'una matriu a Java?
Resposta: No. Declareu matrius i els instancieu amb la mida. Un cop especificat, no podeu canviar la mida de la matriu.
Conclusió
En aquest tutorial, us hem introduït al concepte de matrius a Java. Vam discutir els principals temes associats a les matrius de Java.
En els nostres tutorials posteriors, explorarem aquests temes relacionats amb Array en Java amb detall.
Feliç aprenentatge !!
Lectura recomanada
- Java DataTypes, Loops, Arrays, Switch i Assertions
- Excepcions de Java i tractament d’excepcions amb exemples
- Tutorial de Java Generics amb exemples
- Interfície Java i tutoria de classes abstractes amb exemples
- Introducció al llenguatge de programació Java: vídeo tutorial
- Java String amb buffer de cadenes i tutorial de Generador de cadenes
- Tutorial JAVA per a principiants: més de 100 tutorials pràctics de vídeo Java
- Matrius multidimensionals i matrius dentats en C #