增強for迴圈學習筆記,for迴圈學習筆記
package com.lc.day01.ForEnhance;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import org.junit.Test;public class forEnhance {@Testpublic void ArrayForEnhance() {int arr[] = { 1, 2, 3 };for (int num : arr) {System.out.println("num");}}@Testpublic void ListForEnhance() {List list = new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);for (Object obj : list) {int i = (Integer) obj;System.out.println(i);}}/* * 1.HashMap()是根據演算法存的 2.如果需要按順序儲存的話使用LinkedHashMap() */@Testpublic void MapForEnhance() {// Map map = new HashMap(); //根據演算法存的Map map = new LinkedHashMap(); // 按著自己存放的順序 儲存map.put("1", "aaa");map.put("2", "bbb");map.put("3", "ccc");map.put("4", "fff");map.put("5", "rrr");/* * 1.傳統方式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);}System.out.println("------------------------");/* * 2.傳統方式2 */Set set1 = map.entrySet();Iterator it1 = set1.iterator();while (it1.hasNext()) {Map.Entry entry = (Entry) it1.next();String key = (String) entry.getKey();String value = (String) entry.getValue();System.out.println(key + "=" + value);}System.out.println("------------------------");/* * 3.利用增強for迴圈1 */for(Object obj:map.keySet()){String key = (String)obj;String value = (String)map.get(key);System.out.println(key + "=" + value);}System.out.println("------------------------");/* * 4.利用增強for迴圈2 */for(Object obj:map.entrySet()){Map.Entry entry1 = (Entry)obj;String key = (String) entry1.getKey();String value = (String) entry1.getValue();System.out.println(key + "=" + value);}}@Test/* * 使用增強for迴圈要注意的事情:增強for迴圈只適合取資料 */public void ForEnhancePoint(){int arr[] = {1,2,3};for(int i:arr){i = 10;}System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);List list = new ArrayList();list.add("1");for(Object obj:list){obj = "10";}System.out.println("--------------------");System.out.println(list.get(0));}}
增強for迴圈裡面我怎取得第i個值
List a = new ArrayList();
a.add("a");a.add("b");a.add("c");a.add("d");
for(int i=0;i<a.size();i++){
System.out.println(a.get(i));
}
for(Object i : a){
String b=(String) i;
System.out.println("foreach==="+b);
}
java中使用增強型的for迴圈有什好處?
在上面這個例子 增強型的for迴圈 和普通for迴圈一樣
增強型的for迴圈 優點主要體現在集合中,隨便舉個例子
比如對 set 的遍曆
一般是迭代遍曆:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
for迴圈遍曆:
for (String str : set) {
System.out.println(str);
}
是不是簡單些?
優點還體現在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for迴圈遍曆:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
........
}
如果你用Iterator遍曆,那就暈了
map list 也一樣
唯一的缺點就是 在遍曆 集合過程中,不能對集合本身進行操作
for (String str : set) {
set.remove(str);//錯誤!
}