本文总结自: https://www.cnblogs.com/hellochennan/p/5373186.html

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 遍历数组的几种方式的更多相关文章

  1. java 遍历Map的四种方式

      java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...

  2. java8 遍历数组的几种方式

    java8 遍历数组的几种方式 2017年04月05日 09:15:46 阅读数:4640 风格色 2017-02-11 18:41 有如下一个String数组 String[] array = {& ...

  3. java遍历Map的几种方式

    1.遍历map的几种方式:private Hashtable<String, String> emails = new Hashtable<String, String>(); ...

  4. Java中遍历数组的三种方式复习

    1 for循环遍历 通常遍历数组都是使用for循环来实现.遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度. 程序示例: package captai ...

  5. java遍历map的四种方式

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  6. Java遍历Map的3种方式

    package test; import java.util.Collection; import java.util.HashMap; import java.util.Map; import ja ...

  7. Java遍历Map的4种方式

    public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashM ...

  8. [转载] Java 遍历 Map 的 5 种方式

    目录 1 通过 keySet() 或 values() 方法遍历 2 通过 keySet 的 get(key) 获取值 3 通过 entrySet 遍历 4 通过迭代器 Iterator 遍历 5 通 ...

  9. JavaScript遍历对象4种方法和遍历数组的3种方式 代码

    //遍历对象 4种方法 //Object.keys(obj).forEach() console.log("keys...遍历</br>") var obj1 = { ...

随机推荐

  1. Android中database所在文件夹路径(9.6)

    1 sd----->data---->对应app---->databases----->创建的db 2 push到pc上,可以使用GUI工具SQLiteSpy直接查看datab ...

  2. 深入理解dp px density

    1 http://blog.csdn.net/lcaihy1314/article/details/8446401 2 待续

  3. PHP和Java的主要区别有哪些?哪个最适合Web开发语言?

    一.前言 PHP和Java都是现在比较流行的二种编程语言. 对于许多新手来说,都会思考如果学的时候,该学哪种语言呢?下面这篇文章给大家整理两者的区别以及一些选择建议,一起来看看吧. 二.简介 PHP与 ...

  4. NFS详细分析

    1. NFS服务介绍 1.1什么是NFS服务 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端 ...

  5. Unity3d多人在线教程

    [转载]Unity3d多人在线教程 (2013-02-25 16:02:49) 转载▼ 标签: 转载   原文地址:Unity3d多人在线教程作者:lsy0031 Unity 多个玩家开发教程 Uni ...

  6. Ajax分页功能的实现

    电脑换了固态硬盘,准备重装系统,因此打算把项目里一直延用的代码总结出来,防止丢失,以后也方便查阅.Ajax分页已经是非常普遍的技术了,所以也没什么需要特别说明的,直接贴代码: html部分 <! ...

  7. Sqlserver建立Oracle的鏈接服務器

    --建立数据库链接服务器 EXEC sp_addlinkedserver @server =N'TestOracle', --要创建的链接服务器别名 @srvproduct=N'Oracle', -- ...

  8. linux pptp 服务端安装并正常上网

    linux 下 PPTP VPN 1.安装相关软件32位版:yum -y install ppprpm -Uvh http://poptop.sourceforge.net/yum/stable/rh ...

  9. APPLE ID随意转区到US或者HK.不需要信用卡

    看到论坛有封釉想去US 或者HK 的商店下载大陆商店没有的APP.(比如 Tumblr) 但是现在在手机上或者是网页管理apple id 更改地区,需要输入付款信息. 现在教大家利用旧版的icloud ...

  10. MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析

    随笔 - 66 文章 - 0 评论 - 19 MySQL慢查询(二) - pt-query-digest详解慢查询日志 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它 ...