/* 建立一个数组 */
int[] integers = {1, 2, 3, 4}
/* 开始遍历 */
for (int j = 0j<integers.lengthj++){
int i = integers[j]
System.out.println(i)
}
2:遍历Collection对象的传统方式
/* 建立一个Collection */
String[] strings = {"A", "B", "C", "D"}
Collection stringList = java.util.Arrays.asList(strings)
/* 开始遍历 */
for (Iterator itr = stringList.iterator()itr.hasNext()) {
Object str = itr.next()
System.out.println(str)
}
3:遍历数组的简单方式
/* 建立一个数组 */
int[] integers = {1, 2, 3, 4}
/* 开始遍历 */
for (int i : integers) {
System.out.println(i)/* 依次输出“1”、“2”、“3”、“4” */
}
4:遍历数组的简单方式的等价代码
/* 建立一个数组 */
int[] integers = {1, 2, 3, 4}
/* 开始遍历 */
for (int 变量名甲 = 0变量名甲<integers.length变量名甲++) {
System.out.println(integers[变量名甲])/* 依次输出“1”、“2”、“3”、“4” */
}
5:遍历Collection的简单方式
/* 建立一个Collection */
String[] strings = {"A", "B", "C", "D"}
Collection list = java.util.Arrays.asList(strings)
/* 开始遍历 */
for (Object str : list) {
System.out.println(str)/* 依次输出“A”、“B”、“C”、“D” */
}
6:遍历Collection的简单方式的等价代码
/* 建立一个Collection */
String[] strings = {"A", "B", "C", "D"}
Collection stringList = java.util.Arrays.asList(strings)
/* 开始遍历 */
for (Iterator 变量名乙 = list.iterator()变量名乙.hasNext()) {
Object str = 变量名乙.next()
System.out.println(str)/* 依次输出“A”、“B”、“C”、“D” */
}
7:禁止重新赋值
int[] integers = {1, 2, 3, 4}
for (final int i : integers) {
i = i / 2/* 编译时出错 */
}
8:允许修改状态
Random[] randoms = new Random[]{new Random(1), new Random(2), new Random(3)}
for (final Random r : randoms) {
r.setSeed(4)/* 将所有Random对象设成使用相同的种子 */
System.out.println(r.nextLong())/* 种子相同,第一个结果也相同 */
}
9:使用和要被遍历的数组中的元素相同类型的循环变量
int[] integers = {1, 2, 3, 4}
for (int i : integers) {
System.out.println(i)/* 依次输出“1”、“2”、“3”、“4” */
}
10:使用和要被遍历的Collection中的元素相同类型的循环变量
Collection<String>strings = new ArrayList<String>()
strings.add("A")
strings.add("B")
strings.add("C")
strings.add("D")
for (String str : integers) {
System.out.println(str)/* 依次输出“A”、“B”、“C”、“D” */
}
11:使用要被遍历的对象中的元素的上级类型的循环变量
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” */
}
12:使用能和要被遍历的对象中的元素的类型自动转换的类型的循环变量
int[] integers = {1, 2, 3, 4}
for (Integer i : integers) {
System.out.println(i)/* 依次输出“1”、“2”、“3”、“4” */
}
这种写法成为for each,是jdk1.5出现的新特性,for循环的改进版,意思就是对IntWritable类型的数组或集合values进行遍历for(IntWritable val : values) {
System.out.println(val)
}
功能等同于
for(int i = 0i<values.lengthi++) {
System.out.println(values[i])
/*对values[i]进行处理*/
}