【Java】:什么是for each?数组怎么进行初始化或者拷贝?

176 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第20天,点击查看活动详情

1️⃣前言

大家好,我是翼同学。今天笔记的内容是:

  • for each循环数组的初始化数组的拷贝

2️⃣内容

2.1、for each循环

Java提供了一种遍历数组用于处理元素的循环结构,称作for each循环,即For each element in array

格式如下:

for( var : collection ) {
    若干语句...
}

注意事项:

  • var表示定义一个变量来暂存集合collection中的元素;集合中的元素是什么数据类型,var就是什么类型;
  • 集合表达式collection 可以是数组,也可以是一个实现了Iterable接口的类对象(比如数组列表);
  • for each循环后面可以是一条语句,也可以是语句块。
  • 有了For each结构的循环,就能够简洁的遍历数组中的每一个元素。

举个例子,当我们需要输出数组array中的元素值时,传统for循环是这样:

for(int i = 0; i < array.length; i++) System.out.println(i);

for each循环则可以这样:

for(int i : array) System.out.println(i);

总的来说,当我们需要遍历数组中的每一个元素时,就可以使用for each循环语句结构,此时不用在意数组索引的问题。

2.2、数组的初始化

之间讲过,当我们创建数组后,可以通过循环的方式来初始化数组。

现在,我们也可以在创建数组的同时进行初始化。

举个例子:

int[] array = {1, 3, 5, 7, 9};

当我们调用上述语句后,我们就创建了一个数组array并对其进行初始化,此时数组array的长度就是初始值的个数。

2.3、数组的拷贝

在Java中,允许多个变量引用同一个数组。

举个例子:

int[] array1 = {1, 3, 5, 7, 9};
int[] array2 = array1;
for(int i : array2) System.out.println(i);

在上面的例子中,array1array2都引用了同一个数组,这也就是说,java允许将一个数组变量拷贝给另一个数组变量。

另外,当我们需要将一个数组的所有值拷贝到另一个新的数组中去,有两种方法:

(1)、使用System类的arraycopy方法 (2)、使用Arrays类的copyOf方法


3️⃣写在最后

好了,今天的笔记就记到这里。