La matriu Java és una estructura de dades on podem emmagatzemar els elements del mateix tipus de dades. Els elements d'una matriu s'emmagatzemen en una ubicació de memòria contigua. Per tant, podem emmagatzemar un conjunt fix d'elements en una matriu.
Hi ha maneres següents d'imprimir una matriu en Java:
- Java per bucle
- Java per cadascú bucle
- Java Arrays.toString() mètode
- Java Arrays.deepToString() mètode
- Java Arrays.asList() mètode
- Java Iterador Interfície
- Java corrent API
Java per bucle
Java per bucle s'utilitza per executar un conjunt d'instruccions repetidament fins que es compleix una condició particular.
diferència entre un tigre i un lleó
Sintaxi:
for(initialization; condition; increment/ decrement) { //statements }
Exemple de bucle for
A l'exemple següent, hem creat una matriu de quatre longituds i hem inicialitzat elements en ella. Hem utilitzat el bucle for per obtenir els valors de la matriu. És la forma més popular d'imprimir matrius en Java.
public class PrintArrayExample1 { public static void main(String args[]) { //declaration and instantiation of an array int arr[]=new int[4]; //initializing elements arr[0]=10; arr[1]=20; arr[2]=70; arr[3]=40; //traversing over array using for loop for(int i=0;i <arr.length;i++) length is the property of array system.out.println(arr[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 10 20 70 40 </pre> <h2>Java for-each loop</h2> <p>Java <strong>for-each</strong> loop is also used to traverse over an array or collection. It works on the basis of elements. It returns elements one by one in the defined variable. </p> <p> <strong>Syntax:</strong> </p> <pre> for(Type var:array) </pre> <p> <strong>Example of for-each loop</strong> </p> <p>In the following example, we have created an array of String type of length four and initialized elements into it. We have used for-each loop to traverse over the array.</p> <pre> public class PrintArrayExample2 { public static void main(String args[]) { // declaration and instantiation of an array String[] city = new String[4]; //initializing elements city[0] = 'Delhi'; city[1] = 'Jaipur'; city[2] = 'Gujarat'; city[3] = 'Mumbai'; //traversing over array using for-each loop for (String str : city) { System.out.println(str); } } } </pre> <p> <strong>Output:</strong> </p> <pre> Delhi Jaipur Gujarat Mumbai </pre> <h2>Java Arrays.toString() method</h2> <p>Java <strong>Arrays.toString()</strong> is a static method of <strong>Arrays </strong> class which belongs to <strong>java.util </strong> package It contains various methods for manipulating array. </p> <p> <strong>Syntax:</strong> </p> <pre> public static String toString(int[] a) </pre> <p>It accepts an array of any primitive type as an argument. It returns a <strong>string</strong> representation of an array that contains a list of array's elements. The elements of an array are converted to String by <strong>String.valueOf(int) </strong> .</p> <p> <strong>Example of toString() method</strong> </p> <pre> import java.util.Arrays; public class PrintArrayExample3 { public static void main(String[] args) { //declaring and initializing array int array[] = {34,-10, 56, -9, -33}; //returns string representation of the specified array System.out.println(Arrays.toString(array)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [34, -10, 56, -9, -33] </pre> <h2>Java Arrays.deepToString() method</h2> <p>The <strong>deepToString()</strong> method of Java Arrays class is designed for converting multidimensional arrays to strings.</p> <p> <strong>Syntax:</strong> </p> <pre> public static String deepToString(Object[] a) </pre> <p>It accepts an array as a parameter. It returns the String representation of an array.</p> <p> <strong>Example of deepToString() method</strong> </p> <p>In the following example, we have created a two dimensional array of float type. </p> <pre> import java.util.Arrays; public class PrintArrayExample4 { public static void main(String[] args) { //declaration and initialization of two dimensional array of float type float[][] array = {{1.2f, 2.5f}, {3.9f, 4.0f}, {5.3f, 6.2f}}; System.out.println(Arrays.deepToString(array)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [[1.2, 2.5], [3.9, 4.0], [5.3, 6.2]] </pre> <h2>Java Arrays.asList() method</h2> <p>Java <strong>Arrays.asList()</strong> is a static method of Java <strong>Arrays</strong> class which belongs to <strong>java.util</strong> package. It act as a bridge between array based and collection based API. </p> <p> <strong>Syntax:</strong> </p> <pre> public static ListasList(T...a) </pre> <p>The method also provides an easy way to create a fixed-size list initialize to contain many elements.</p> <pre> List obj=Arrays.toString(array[] a </pre> <p>It accepts an array as an argument. It returns the list view of an array.</p> <p> <strong>Example of asList() method</strong> </p> <pre> import java.util.Arrays; public class PrintArrayExample5 { public static void main(String [] args) { //declaration and initialization of two dimensional array String[] stringArray={'Hello','Java','Programmers'}; System.out.println(Arrays.asList(stringArray)); } </pre> <p> <strong>Output:</strong> </p> <pre> [Hello, Java, Programmers] </pre> <h2>Java Iterator interface</h2> <p>Java <strong>Iterator</strong> is an interface which belongs to <strong>java.util</strong> package. The Iterator object can be created by calling iterator() method. It is present in Collection interface. It returns an iterator.</p> <p> <strong>Example of Iterator interface</strong> </p> <p>In the following, example, we have declare an array and initialize elements into it. We first convert the specified array into list by using Arrays.asList() method because iterator allows us to traverse over the collection and then invoke iterator() method of collection class.</p> <pre> import java.util.Arrays; import java.util.Iterator; public class PrintArrayExample6 { public static void main(String[] args) { //declaration and initialization of an array of Double type Double[] array = { 1.5, 2.6, 3.7, 4.8, 5.9}; //returns an iterator Iterator it = Arrays.asList(array).iterator(); while(itr.hasNext()) //returns a boolean value { System.out.println(itr.next()); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 1.5 2.6 3.7 4.8 5.9 </pre> <h2>Java Stream API</h2> <p>A Java Stream is a data structure which is computed on-demand. It doesn't store data. It operates on the source data structure such as collection and array. Java stream API is used to implement internal iteration. It provides several features such as sequential and parallel execution. </p> <h3>Java stream() method</h3> <p>Java <strong>stream()</strong> is a static method of Java <strong>Arrays</strong> class which belongs to java.util package. It is used to get a sequential stream of an array.</p> <p> <strong>Syntax:</strong> </p> <pre> public static Stream stream(T[] array) </pre> <p>Where <strong>T</strong> is the type of array. The method accepts an <strong>array</strong> whose elements are to be converted into a sequential stream. It returns a sequential <strong>IntStream</strong> with the specified array as its source.</p> <h3>Java forEach() method</h3> <p>It is a terminal operation. It does not guarantee to respect the encounter order of the stream.</p> <p> <strong>Syntax:</strong> </p> <pre> void forEach(Consumer action) </pre> <p>The method accepts an <strong>action</strong> as a parameter. It is non-interfering action perform on each element. It does not return anything.</p> <p>There are two terminal operations which we can apply to a stream to print an array.</p> <p> <strong>Get an iterator to the stream</strong> </p> <pre> Iterator it=Arrays.stream(arr).iterator(); </pre> <p> <strong>Using stream().forEach()</strong> </p> <pre> Arrays.stream(arr).forEach(System.out::println); </pre> <p> <strong>Example of stream.forEach() method</strong> </p> <p>In the following example, we have used a different way to print an array. The forEach() method is used to iterate over every element of the stream. It is defined in the Iterable and Stream interface.</p> <p>Inside the forEach() method we have used System.out which is a reference to an object. It represent standard output stream. It has a method called println(). It is an overloaded method which can accept anything as an argument. When we put println() method after member access operator (::), it becomes an expression.</p> <pre> import java.util.Arrays; public class PrintArrayExample7 { public static void main(String[] args) { //declaration and initialization of an array of String type String[] arr = {'Java', 'C', 'C++', 'Python', 'Perl'}; //iterating by passing the method reference Arrays.stream(arr).forEach(System.out::println); } } </pre> <p> <strong>Output:</strong> </p> <pre> Java C C++ Python Perl </pre> <hr></arr.length;i++)>
Java per a cada bucle
Java per cadascú bucle també s'utilitza per recórrer una matriu o col·lecció. Funciona a partir d'elements. Retorna els elements un per un a la variable definida.
Sintaxi:
for(Type var:array)
Exemple de bucle for-each
A l'exemple següent, hem creat una matriu de tipus String de longitud quatre i hi hem inicialitzat elements. Hem utilitzat for-each bucle per recórrer la matriu.
public class PrintArrayExample2 { public static void main(String args[]) { // declaration and instantiation of an array String[] city = new String[4]; //initializing elements city[0] = 'Delhi'; city[1] = 'Jaipur'; city[2] = 'Gujarat'; city[3] = 'Mumbai'; //traversing over array using for-each loop for (String str : city) { System.out.println(str); } } }
Sortida:
Delhi Jaipur Gujarat Mumbai
Mètode Java Arrays.toString().
Java Arrays.toString() és un mètode estàtic de Arrays classe a la qual pertany java.util package Conté diversos mètodes per manipular la matriu.
Sintaxi:
public static String toString(int[] a)
Accepta una matriu de qualsevol tipus primitiu com a argument. Torna a corda representació d'una matriu que conté una llista d'elements de la matriu. Els elements d'una matriu es converteixen a String per String.valueOf(int) .
Exemple del mètode toString().
import java.util.Arrays; public class PrintArrayExample3 { public static void main(String[] args) { //declaring and initializing array int array[] = {34,-10, 56, -9, -33}; //returns string representation of the specified array System.out.println(Arrays.toString(array)); } }
Sortida:
[34, -10, 56, -9, -33]
Mètode Java Arrays.deepToString().
El deepToString() El mètode de la classe Java Arrays està dissenyat per convertir matrius multidimensionals en cadenes.
Sintaxi:
public static String deepToString(Object[] a)
Accepta una matriu com a paràmetre. Retorna la representació String d'una matriu.
Exemple del mètode deepToString().
A l'exemple següent, hem creat una matriu bidimensional de tipus flotant.
import java.util.Arrays; public class PrintArrayExample4 { public static void main(String[] args) { //declaration and initialization of two dimensional array of float type float[][] array = {{1.2f, 2.5f}, {3.9f, 4.0f}, {5.3f, 6.2f}}; System.out.println(Arrays.deepToString(array)); } }
Sortida:
[[1.2, 2.5], [3.9, 4.0], [5.3, 6.2]]
Mètode Java Arrays.asList().
Java Arrays.asList() és un mètode estàtic de Java Arrays classe a la qual pertany java.util paquet. Funciona com un pont entre l'API basada en matrius i l'API basada en col·leccions.
Sintaxi:
public static ListasList(T...a)
El mètode també proporciona una manera senzilla de crear una llista de mida fixa inicialitzada per contenir molts elements.
List obj=Arrays.toString(array[] a
Accepta una matriu com a argument. Retorna la vista de llista d'una matriu.
Exemple del mètode asList().
import java.util.Arrays; public class PrintArrayExample5 { public static void main(String [] args) { //declaration and initialization of two dimensional array String[] stringArray={'Hello','Java','Programmers'}; System.out.println(Arrays.asList(stringArray)); }
Sortida:
[Hello, Java, Programmers]
Interfície Java Iterator
Java Iterador és una interfície a la qual pertany java.util paquet. L'objecte Iterator es pot crear cridant al mètode iterator(). Està present a la interfície de Col·lecció. Retorna un iterador.
Exemple d'interfície Iterator
A l'exemple següent, hem declarat una matriu i hem inicialitzat elements en ella. Primer convertim la matriu especificada en llista mitjançant el mètode Arrays.asList() perquè l'iterador ens permet recórrer la col·lecció i després invocar el mètode iterator() de la classe de col·lecció.
import java.util.Arrays; import java.util.Iterator; public class PrintArrayExample6 { public static void main(String[] args) { //declaration and initialization of an array of Double type Double[] array = { 1.5, 2.6, 3.7, 4.8, 5.9}; //returns an iterator Iterator it = Arrays.asList(array).iterator(); while(itr.hasNext()) //returns a boolean value { System.out.println(itr.next()); } } }
Sortida:
1.5 2.6 3.7 4.8 5.9
API Java Stream
Un Java Stream és una estructura de dades que es calcula sota demanda. No emmagatzema dades. Funciona amb l'estructura de dades font, com ara la col·lecció i la matriu. L'API de flux de Java s'utilitza per implementar la iteració interna. Proporciona diverses característiques com ara l'execució seqüencial i paral·lela.
Mètode Java stream().
Java corrent() és un mètode estàtic de Java Arrays classe que pertany al paquet java.util. S'utilitza per obtenir un flux seqüencial d'una matriu.
Sintaxi:
public static Stream stream(T[] array)
On T és el tipus de matriu. El mètode accepta un matriu els elements del qual s'han de convertir en un flux seqüencial. Retorna una seqüencial IntStream amb la matriu especificada com a font.
Mètode Java forEach().
És una operació terminal. No garanteix respectar l'ordre de trobada del corrent.
Sintaxi:
void forEach(Consumer action)
El mètode accepta un acció com a paràmetre. És una acció que no interfereix en cada element. No retorna res.
Hi ha dues operacions de terminal que podem aplicar a un flux per imprimir una matriu.
Obteniu un iterador al flux
Iterator it=Arrays.stream(arr).iterator();
Utilitzant stream().forEach()
Arrays.stream(arr).forEach(System.out::println);
Exemple del mètode stream.forEach().
En l'exemple següent, hem utilitzat una manera diferent d'imprimir una matriu. El mètode forEach() s'utilitza per iterar sobre tots els elements del flux. Es defineix a la interfície Iterable i Stream.
Dins del mètode forEach() hem utilitzat System.out que és una referència a un objecte. Representa el flux de sortida estàndard. Té un mètode anomenat println(). És un mètode sobrecarregat que pot acceptar qualsevol cosa com a argument. Quan posem el mètode println() després de l'operador d'accés als membres (::), es converteix en una expressió.
import java.util.Arrays; public class PrintArrayExample7 { public static void main(String[] args) { //declaration and initialization of an array of String type String[] arr = {'Java', 'C', 'C++', 'Python', 'Perl'}; //iterating by passing the method reference Arrays.stream(arr).forEach(System.out::println); } }
Sortida:
Java C C++ Python Perl