java 遍历数组的几种方式
本文总结自: 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 遍历数组的几种方式的更多相关文章
- java 遍历Map的四种方式
java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...
- java8 遍历数组的几种方式
java8 遍历数组的几种方式 2017年04月05日 09:15:46 阅读数:4640 风格色 2017-02-11 18:41 有如下一个String数组 String[] array = {& ...
- java遍历Map的几种方式
1.遍历map的几种方式:private Hashtable<String, String> emails = new Hashtable<String, String>(); ...
- Java中遍历数组的三种方式复习
1 for循环遍历 通常遍历数组都是使用for循环来实现.遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度. 程序示例: package captai ...
- java遍历map的四种方式
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- Java遍历Map的3种方式
package test; import java.util.Collection; import java.util.HashMap; import java.util.Map; import ja ...
- Java遍历Map的4种方式
public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashM ...
- [转载] Java 遍历 Map 的 5 种方式
目录 1 通过 keySet() 或 values() 方法遍历 2 通过 keySet 的 get(key) 获取值 3 通过 entrySet 遍历 4 通过迭代器 Iterator 遍历 5 通 ...
- JavaScript遍历对象4种方法和遍历数组的3种方式 代码
//遍历对象 4种方法 //Object.keys(obj).forEach() console.log("keys...遍历</br>") var obj1 = { ...
随机推荐
- c#创建对象并动态添加属性
//动态类,可以作为基类被继承 dynamic backObj = new ExpandoObject(); //ExpandoObject 为密封类 backObj.image0 = IMGNAME ...
- instantclient_11_2 连接oracle数据
(1)首先你要先下载instantclient (解压如下),修改你 instantclient/network/admin/tnsnames.ora 文件,将你oracle的服务器地址写上 ...
- kafka eagle 使用教程
下载 地址:http://download.smartloli.org/ github:https://github.com/smartloli/kafka-eagle 环境 Windows: 安装J ...
- ACE_Svc_Handler 通信原理
ACE作为通讯方面的开源架构,不但用c++实现,而且用JAVA实作的架构已经可以使用了,由此看来掌握ACE成为每歌开发通讯程序的程序员的必备技能. ACE的库分为4个层次: OS适配层该层将ACE的较 ...
- (转) 对svn分支合并类型和深度的理解
合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里.如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分 ...
- 嵌入式开发之simulation--- 双目移动dsp机器人
http://foundy.blog.163.com/blog/static/263383442014112391130207/
- 线性同余方程组模板( x=r0(mod m0) )
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm& ...
- 【BZOJ4016】[FJOI2014]最短路径树问题 最短路径树+点分治
[BZOJ4016][FJOI2014]最短路径树问题 Description 给一个包含n个点,m条边的无向连通图.从顶点1出发,往其余所有点分别走一次并返回. 往某一个点走时,选择总长度最短的路径 ...
- 自然常数e的神奇之美
- 使用PLSQL客户端导入导出数据库
本文主要介绍如何使用SQL Developer工具来实现备份数据库.数据导出等操作,然后实现Oracle对象导入数据等操作 1 导出数据库对象 在PL/SQL Developer的菜单Tools=&g ...