本文概述
- Java for循环
- Java for-each循环
- Java Arrays.toString()方法
- Java Arrays.deepToString()方法
- Java Arrays.asList()方法
- Java Iterator接口
- Java Stream API
Java数组是一种数据结构, 我们可以在其中存储相同数据类型的元素。数组的元素存储在连续的存储位置中。因此, 我们可以在数组中存储一组固定的元素。
有以下几种在Java中打印数组的方法:
- Java for循环
- Java for-each循环
- Java Arrays.toString()方法
- Java Arrays.deepToString()方法
- Java Arrays.asList()方法
- Java迭代器接口
- Java Stream API
Java for循环
Java for循环用于重复执行一组语句, 直到满足特定条件为止。
句法:
for(initialization; condition; increment/ decrement)
{
//statements
}
for循环的例子
在下面的示例中, 我们创建了一个长度为4的数组, 并在其中初始化了元素。我们已使用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 the array
System.out.println(arr[i]);
}
}
输出:
10
20
70
40
Java for-each循环
Java for-each循环还用于遍历数组或集合。它基于元素而工作。它在定义的变量中一一返回元素。
句法:
for(Type var:array)
for-each循环的示例
在下面的示例中, 我们创建了一个长度为4的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()是Arrays类的静态方法, 属于java.util包。它包含用于操纵数组的各种方法。
句法:
public static String toString(int[] a)
它接受任何原始类型的数组作为参数。它返回一个包含数组元素列表的数组的字符串表示形式。数组的元素通过String.valueOf(int)转换为String。
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()方法
Java Arrays类的deepToString()方法旨在将多维数组转换为字符串。
句法:
public static String deepToString(Object[] a)
它接受一个数组作为参数。它返回数组的String表示形式。
deepToString()方法的示例
在下面的示例中, 我们创建了一个浮点类型的二维数组。
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 Arrays类的静态方法, 该类属于java.util包。它充当基于数组的API和基于集合的API之间的桥梁。
句法:
public static <T> List<T>asList(T...a)
该方法还提供了一种创建固定大小的列表的初始化的简便方法, 该列表初始化为包含许多元素。
List<T> 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 Iterator是属于java.util包的接口。可以通过调用iterator()方法来创建Iterator对象。它存在于Collection界面中。它返回一个迭代器。
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<Double> 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流API用于实现内部迭代。它提供了一些功能, 例如顺序执行和并行执行。
Java stream()方法
Java stream()是Java Arrays类的静态方法, 该类属于java.util包。它用于获取数组的顺序流。
句法:
public static <T>Stream stream(T[] array)
其中T是数组的类型。该方法接受一个数组, 其元素将转换为顺序流。它返回一个以指定数组为源的顺序IntStream。
Java forEach()方法
这是一个终端操作。它不能保证尊重流的遇到顺序。
句法:
void forEach(Consumer<? super T> action)
该方法接受一个动作作为参数。它是对每个元素执行的不干扰动作。它不返回任何东西。
我们可以将两个终端操作应用于流以打印数组。
获取流的迭代器
Iterator it=Arrays.stream(arr).iterator();
使用stream()。forEach()
Arrays.stream(arr).forEach(System.out::println);
stream.forEach()方法的示例
在下面的示例中, 我们使用了另一种方式来打印数组。 forEach()方法用于迭代流的每个元素。它在Iterable and 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
评论前必须登录!
注册