Java масивът е структура от данни, където можем да съхраняваме елементи от един и същи тип данни. Елементите на масива се съхраняват в непрекъснато място в паметта. Така че можем да съхраняваме фиксиран набор от елементи в масив.
Има следните начини за отпечатване на масив в Java:
- Java за цикъл
- Java за всеки цикъл
- Java Arrays.toString() метод
- Java Arrays.deepToString() метод
- Java Arrays.asList() метод
- Java Итератор Интерфейс
- Java Поток API
Java за цикъл
Java за цикълът се използва за многократно изпълнение на набор от изрази, докато не бъде изпълнено определено условие.
ръчно тестване
Синтаксис:
for(initialization; condition; increment/ decrement) { //statements }
Пример за for цикъл
В следващия пример създадохме масив с дължина четири и инициализирахме елементи в него. Използвахме for цикъл за извличане на стойностите от масива. Това е най-популярният начин за отпечатване на масив в 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 за всеки цикъл
Java за всеки цикъл се използва и за преминаване през масив или колекция. Работи на базата на елементи. Той връща елементи един по един в дефинираната променлива.
Синтаксис:
for(Type var:array)
Пример за цикъл for-each
В следващия пример създадохме масив от тип String с дължина четири и инициализирахме елементи в него. Използвахме цикъл for-each за преминаване през масива.
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); } } }
Изход:
Delhi Jaipur Gujarat Mumbai
Java Arrays.toString() метод
Java Arrays.toString() е статичен метод на Масиви клас, към който принадлежи java.util пакет Той съдържа различни методи за манипулиране на масив.
Синтаксис:
public static String toString(int[] a)
Той приема масив от произволен примитивен тип като аргумент. Връща a низ представяне на масив, който съдържа списък от елементи на масива. Елементите на масив се преобразуват в String от String.valueOf(int) .
Пример за метод 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)); } }
Изход:
[34, -10, 56, -9, -33]
Java Arrays.deepToString() метод
The deepToString() Методът на класа Java Arrays е предназначен за конвертиране на многомерни масиви в низове.
Синтаксис:
public static String deepToString(Object[] a)
Той приема масив като параметър. Връща низовото представяне на масив.
Пример за метод deepToString().
В следващия пример създадохме двуизмерен масив от тип float.
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)); } }
Изход:
[[1.2, 2.5], [3.9, 4.0], [5.3, 6.2]]
Java Arrays.asList() метод
Java Arrays.asList() е статичен метод на Java Масиви клас, към който принадлежи java.util пакет. Той действа като мост между API, базиран на масив и базиран на колекции.
Синтаксис:
public static ListasList(T...a)
Методът също така предоставя лесен начин за създаване на списък с фиксиран размер, инициализиран да съдържа много елементи.
List obj=Arrays.toString(array[] a
Той приема масив като аргумент. Връща изгледа на списък на масив.
Пример за метод 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)); }
Изход:
[Hello, Java, Programmers]
Интерфейс на Java Iterator
Java Итератор е интерфейс, който принадлежи на java.util пакет. Обектът Iterator може да бъде създаден чрез извикване на метода iterator(). Той присъства в интерфейса на колекцията. Връща итератор.
Пример за интерфейс на итератор
В следващия пример сме декларирали масив и сме инициализирали елементи в него. Първо преобразуваме посочения масив в списък, като използваме метода Arrays.asList(), тъй като итераторът ни позволява да преминем през колекцията и след това да извикаме метода iterator() на класа на колекцията.
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()); } } }
Изход:
1.5 2.6 3.7 4.8 5.9
Java Stream API
Java Stream е структура от данни, която се изчислява при поискване. Не съхранява данни. Той работи върху структурата на изходните данни, като колекция и масив. Java stream API се използва за внедряване на вътрешна итерация. Той предоставя няколко функции като последователно и паралелно изпълнение.
Java stream() метод
Java поток () е статичен метод на Java Масиви клас, който принадлежи към пакета java.util. Използва се за получаване на последователен поток от масив.
Синтаксис:
public static Stream stream(T[] array)
Където T е типът на масива. Методът приема ан масив чиито елементи трябва да бъдат преобразувани в последователен поток. Връща последователност IntStream с посочения масив като негов източник.
Java forEach() метод
Това е терминална операция. Не гарантира спазване на реда на срещата в потока.
Синтаксис:
void forEach(Consumer action)
Методът приема ан действие като параметър. Това е действие без намеса, извършвано върху всеки елемент. Не връща нищо.
Има две терминални операции, които можем да приложим към поток, за да отпечатаме масив.
Вземете итератор към потока
Iterator it=Arrays.stream(arr).iterator();
Използване на stream().forEach()
Arrays.stream(arr).forEach(System.out::println);
Пример за метод stream.forEach().
В следващия пример сме използвали различен начин за отпечатване на масив. Методът forEach() се използва за итерация на всеки елемент от потока. Дефинира се в интерфейса Iterable и Stream.
Вътре в метода forEach() използвахме System.out, който е препратка към обект. Той представлява стандартен изходен поток. Има метод, наречен println(). Това е претоварен метод, който може да приеме всичко като аргумент. Когато поставим метода println() след оператора за членски достъп (::), той се превръща в израз.
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); } }
Изход:
Java C C++ Python Perl