test 1:
数组:
/** * 增强for循环 */ @Test public void test1() { int arr[] = { 1, 2, 3 }; for (int i : arr) { System.out.println(i); } }
test 2:
列表:
@Test public void test2() { List list = new ArrayList(); list.add(1); // 自动包装 list.add(2); list.add(3); for (Object obj : list) { int i = (Integer) obj; System.out.println(i); } }
test 3:
哈希表:
传统方式一:
/** * 第一种方式取值 */ @Test public void test3() { Map map = new HashMap(); map.put("1", "aaa"); map.put("2", "bbb"); map.put("3", "ccc"); // 传统方式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); } }
这时你会发现输出的值和输入值得位置不一样,我们可以用LinkedHashMap;
加强for循环:
@Test public void test5() { Map map = new LinkedHashMap(); map.put("1", "aaa"); map.put("2", "bbb"); map.put("3", "ccc"); // 增强for取map的第1种方式 for(Object obj : map.keySet() ){ String key = (String) obj; String value = (String) map.get(key); System.out.println(key + "=" + value); } }
哈希表:
传统方式二:
@Test public void test4() { Map map = new LinkedHashMap(); map.put("1", "aaa"); map.put("2", "bbb"); map.put("3", "ccc"); // 传统方式2: Set set = map.keySet(); 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); } }
加强for循环:
@Test public void test6() { Map map = new LinkedHashMap(); map.put("1", "aaa"); map.put("2", "bbb"); map.put("3", "ccc"); // 增强for取map的第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循环只适合取数据,并不改变数据;
例子:
@Test public void test1() { 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]); }
你会发现输出的是1,2,3,只是将arr数组其中的值赋给i,再改变i就与数组无关了。