使用场景
增强for循环只能用在数组,或者实现Iterable接口的集合类上
语法格式:
for(变量类型 变量 :需要迭代的数组或集合){ }
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
public class ForTest {
public static void main(String[] args) {
ForTest ft = new ForTest();
//ft.test1(); //打印结果 123
//ft.test2(); //打印结果 1234
//ft.test3();
/**用的hashmap
* 输出结果:
* 3=bbb
* 2=bbb
* 1=aaa
*/
//ft.test4();
/**输出结果:
* 1=aaa
* 2=bbb
* 3=bbb
*/
ft.test5();
/** 输出结果:
* 3=bbb
* 2=bbb
* 1=aaa
*/
ft.test6();
/**输出结果:
* 1=aaa
* 2=bbb
* 3=bbb
*/
}
public void test1(){
int arr[]={1,2,3};
for (int num : arr){
System.out.print(num);
}
}
//list集合
public void test2(){
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (Object obj:list){
System.out.print(obj);
}
}
//map集合 传统方式两种
public void test3(){
Map map = new HashMap(); //换成LinkedHashMap 先放先出
map.put("1", "aaa");
map.put("2", "bbb");
map.put("3", "bbb");
//传统方式1
Set set = map.keySet();
Iterator it=set.iterator();
while(it.hasNext()){
String key = (String) it.next();
String value =(String) map.get(key);
System.out.println(key+"="+value);
}
}
//map集合 传统方式两种
public void test4(){
Map map = new LinkedHashMap(); //换成LinkedHashMap 先放先出
map.put("1", "aaa");
map.put("2", "bbb");
map.put("3", "bbb");
//传统方式2
Set set = map.entrySet();
Iterator it=set.iterator();
while(it.hasNext()){
Map.Entry entry =(Entry) it.next();
String key = (String) entry.getKey();
String value =(String) entry.getValue();
System.out.println(key+"="+value);
}
}
//增强for1
public void test5(){
Map map = new HashMap(); //换成LinkedHashMap 先放先出
map.put("1", "aaa");
map.put("2", "bbb");
map.put("3", "bbb");
for(Object obj:map.keySet()){
String key=(String) obj;
String value =(String) map.get(key);
System.out.println(key+"="+value);
}
}
//map集合 传统方式两种
public void test6(){
Map map = new LinkedHashMap(); //换成LinkedHashMap 先放先出
map.put("1", "aaa");
map.put("2", "bbb");
map.put("3", "bbb");
//传统方式2
for(Object obj:map.entrySet()){
Map.Entry entry=(Entry) obj;
String key = (String) entry.getKey();
String value =(String) entry.getValue();
System.out.println(key+"="+value);
}
}
//增强for需要注意的一点 增强for只适合取数据
public void test(){
int arr[]={1,2,3};
for (int i:arr){
i=10; //等于只把i的值改变,数组值没变
}
System.out.println(arr[0]);
System.out.println(arr[0]);
System.out.println(arr[0]);
}
//输出结果 :1 2 3
}