使用情境
增強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
}