foreach循环(遍历数组或者集合)
foreach循环(加强for循环是jdk5.0出现的)
- foreach循环又称为加强for循环
我们的foreach循环(加强for循环是jdk5.0出现的)
- javat5.0提供了foreach循环迭代访问Collection和数组
foreach循环:(我们用来干什么?)
- 我们使用foreach循环来遍历集合或者是数组
注意:我们的foreach循环也是用于遍历Collection(单列集合),而不能用于遍历Map(双列集合)
foreach循环遍历集合或者数组的格式:
for(集合(或者是数组)元素类型 临时变量 : 集合名(或者数组名)){
//这里就是一些关于操作这个临时变量的句子(eg:我们可以使用这个临时变量达到遍历集合或者数组的目的)
}
foreach循环为什么可以用来遍历集合?
- 其实我们的foreach循环在底层也是调用了我们的迭代器对集合进行了遍历
这里我们举一个使用foreach循环遍历集合的例子:
eg:
package foreach循环;
import java.util.Collection;
import java.util.ArrayList;
public class foreachDemo1 {
public static void main(String[] args) {
Collection c1 = new ArrayList();
c1.add(1234);
c1.add(true);
c1.add(false);
c1.add("abc");
/*
这里我们的foreach循环中是怎样对我们的集合进行遍历的?--- 其实我们的foreach循环内也是使用迭代器的方式对我们的
集合中的元素进行遍历的
*/
/*
这里的Object指的就是我们的数组中的元素的类型, obj就是一个临时变量(就和我们for循环中的i一样), c1就是我们要遍历的数组
或者是集合名
*/
for (Object obj:c1) {
System.out.println(obj);
}
}
}
那么这里我们还有一个关于foreach循环遍历数组的练习题:
eg:
package foreach循环;
public class ForeachDemo2 {
public static void main(String[] args) {
String [] arr = new String[]{"MM","MM","MM"};
for(int i= 0; i<arr.length;i++){
/*
这里我们使用GG直接给arr数组的某个元素直接进行了赋值,这里我们就是改变了数组中各个索引位置的指向,
原本的我们的arr数组中的每个位置都是指向了我们的字符串"MM",而且我们还知道我们的这个"MM"是在字符串常量池中创建的对象
那么这个时候我们通过改变了数组中各个位置元素的指向,让我们的数组中的每个位置都指向了字符串常量池中的同一个"GG"对象
那么后面我们遍历这个数组元素的时候这个数组中的元素就都变成了"GG"
*/
arr[i]="GG";
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
String [] arr2 = new String[]{"MM","MM","MM"};
for(String s:arr2){
/*
这里我们是先让我们的字符串类型的引用指向了我们的数组中的每一个元素(arr[i],后面我们又通过让我们的字符串引用s
指向了我们的字符串常量池中的一个字符串对象"GG"
那么这个时候我们的字符串引用s改变了指向,但是我们的数组中的每个位置还是都是指向了字符串常量池中的"MM"对象
*/
s="GG";
}
for (int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);
}
}
}