美文网首页@IT·互联网
惊呆!京东Java大佬讲解java 遍历数组!

惊呆!京东Java大佬讲解java 遍历数组!

作者: 飞羽亦 | 来源:发表于2020-12-12 17:46 被阅读0次

1. 传统方式

非常简单的for循环

int[] a = {1, 2, 3, 4};
 for (int j = 0; j < a.length; j++) {
     int i = a[j];
     System.out.println(i);
 }

2. for-each循环(J2SE 1.5)

语法: for (循环变量类型 循环变量名称 : 被遍历的对象) 循环体

eg:

int[] a = {1, 2, 3, 4};
for (int i : a) {
     System.out.println(i); 
}

为什么不用foreach和in,而是for、: ?

这是为了避免因为引入新的关键字,造成兼容性方面的问题。

如何防止在循环体中修改循环变量?

可通过将循环变量设为final,这样如果对其进行修改会在编译时报错

int[] a = {1, 2, 3, 4};
 for (final int i : a) {
     i = i / 2; /* 编译时出错 */
 }

注意: 只是禁止了对循环变量直接赋值。如果给循环变量的属性赋值,或者调用能让循环变量的属性变化的方法,是不被禁止的。


类型相容问题

a、循环变量的类型可以是被遍历的对象的上级类型

eg:

String[] strings = {"A", "B", "C", "D"};
Collection< String> list = java.util.Arrays.asList(strings);
for (Object str : list) {
System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */
}

b、循环变量的类型可以和要被遍历的对象的类型之间存在能自动转换的关系,即:

J2SE 1.5中包含了“Autoboxing/Auto-Unboxing”的机制,允许编译器在必要的时候,自动在基本类型和它们的包裹类(Wrapper Classes)之间进行转换。

eg:

int[] integers = {1, 2, 3, 4};
for (Integer i : integers) {
   System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
}

3. 转换为Collection子类用迭代器遍历

eg:

int[] a= {1,2,3};
List b= a.AsList(a);
Iterator iter= b.iterator();
while(iter.hasNext()){
     Object pre= iter.next();
     System.out.println(pre);
}

int[] a= {1,2,3};
List b= a.AsList(a);
for(Iterator iter = b.iterator();iter.hasNext();){
    Object pre= iter.next();
    System.out.println(pre);
}

Collection子类也能使用for-each的方式遍历,即:

int[] a= {1,2,3};
List b= a.AsList(a);
for(Object i: b){
    System.out.println(i);
}

点击链接加入群聊【Java交流圈】

最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:
756584822

相关文章

  • 惊呆!京东Java大佬讲解java 遍历数组!

    1. 传统方式 非常简单的for循环 2. for-each循环(J2SE 1.5) 语法: for (循环变量类...

  • 二叉树的遍历

    前序遍历 python java 后序遍历 java python 中序遍历 java python

  • System.arraycopy为什么快

    前言 在 Java 编程中经常会遇到数组拷贝操作,一般会有如下四种方式对数组进行拷贝。 for遍历,遍历源数组并将...

  • java中数组多种遍历求和的效率分析

    java中数组多种遍历求和的效率分析 int型数组的遍历求和效率分析 转换成流的形式,再求和。IntStream....

  • Java数组

    中国大学Mooc学习 5.1 1.数组遍历 1.for遍历 等价于: 2.java数组小实例 写一个程序,输入数量...

  • 数据结构必备代码

    目录: 排序算法 树的遍历 查找 链表插入 数组与列表转化 二维数组排序 java中输入 集合遍历 一、基本排序1...

  • Java多维数组遍历

    多维数组 数组是Java中的一种容器对象,它拥有多个单一类型的值。当数组被创建的时候数组长度就已经确定了。在创建之...

  • 数组,栈,队列,链表

    数组 1:什么是数组?2:Java中数组的声明及数组的遍历3:数组天生的优势——索引4:动态数组5:封装自己的数组...

  • PHP数组

    数组的创建和调用: 获取数组长度: 类似java的键值对: 关联数组(键值对数组)的遍历输出: 将数组的值进行排列...

  • 2018-12-02

    Java二维数组的遍历及其转置详解 1.首先我们需要定义一个二维数组 2.对数组进行遍历 3.对数组进行转置操作 ...

网友评论

    本文标题:惊呆!京东Java大佬讲解java 遍历数组!

    本文链接:https://www.haomeiwen.com/subject/dphygktx.html