赞
踩
我们在java程序基础里介绍了数组这种数据类型,有了数组,我们还需要来操作他。而数组最常见的一个操作就是遍历。
遇到 for 循环就可以遍历数组。因为数组的每个元素都可以通过索引来访问,因此,使用标准的 for 循环可以完成一个数组的遍历:
- public static void main(String[] args){
- /*** Description:遍历数组
- * @author: yiqi
- * @date: 2021/4/24 15:25
- * @param:[args]
- * @return:void
- */
- int[] ns = {1,2,3,4,5};
- //方法一:
- for (int i = 0; i < ns.length; i++) {
- System.out.println(ns[i]);
- }
- }
为了实现for
循环遍历,初始条件为i=0
,因为索引总是从0
开始,继续循环的条件为i<ns.length
,因为当i=ns.length
时,i
已经超出了索引范围(索引范围是0
~ ns.length-1
),每次循环后,i++
。
第二种方式是使用for each
循环,直接迭代数组的每个元素:
- public static void main(String[] args){
- /*** Description:遍历数组
- * @author: yiqi
- * @date: 2021/4/24 15:25
- * @param:[args]
- * @return:void
- */
- int[] ns = {1,2,3,4,5};
- //方法二:
- for (int n : ns) {
- System.out.println(n);
- }
- }
注意:在for (int n : ns)
循环中,变量n
直接拿到ns
数组的元素,而不是索引。
显然for each
循环更加简洁。但是,for each
循环无法拿到数组的索引,因此,到底用哪一种for
循环,取决于我们的需要。
直接打印数组变量,得到的是数组在JVM中的引用地址:
- int[] ns = { 1, 1, 2, 3, 5, 8 };
- System.out.println(ns); // 类似 [I@7852e922
这并没有什么意义,因为我们希望打印的数组的元素内容。因此,使用for each
循环来打印它:
- int[] ns = { 1, 1, 2, 3, 5, 8 };
- for (int n : ns) {
- System.out.print(n);
- }
使用for each
循环打印也很麻烦。幸好Java标准库提供了Arrays.toString()
,可以快速打印数组内容:
- public static void main(String[] args){
- /*** Description:遍历数组
- * @author: yiqi
- * @date: 2021/4/24 15:25
- * @param:[args]
- * @return:void
- */
- int[] ns = { 1, 1, 2, 3, 5, 8 };
- System.out.println(Arrays.toString(ns));
- }
遍历数组可以使用for
循环,for
循环可以访问数组索引,for each
循环直接迭代每个数组元素,但无法获取索引;
使用Arrays.toString()
可以快速获取数组内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。