JDK5.0新特性-增强for循环
==============
增强for循环
它的底层实现就是使用Iterator。
什么样的容器可以使用增强for?-----------Iterable
增强for的缺点:只能进行遍历,不能进行在遍历过程中的操作.
增强for的格式
for(类型 引用:容器){
}
--------------------------------------------
关于对集合的遍历.
List
1.Iterator
2.增强for
3.普通for
4.ListIterator
Set
1.增强for
2.Iterator
Map
1.keySet---得到所有的key的Set视图
2.entrySet--得到key-value的set视图
==============
对List进行遍历
package cn.itcast.fordemo; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.Random; import org.junit.Test; //必会代码 //对List进行遍历 public class Demo1 { // 1.使用传统的迭代器 @Test public void demo1() { List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { list.add(new Random().nextInt(100)); } // for (Iterator<Integer> it = list.iterator(); it.hasNext();) { // System.out.println(it.next()); // } Iterator<Integer> it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } // 2.使用ListIterator----好处:1.可以向下或向上遍历 2.可以在遍历过程中进行 add set操作. @Test public void demo2() { List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { list.add(new Random().nextInt(100)); } ListIterator<Integer> it = list.listIterator(); while (it.hasNext()) { System.out.println(it.next()); } } // 3.使用普通for size get @Test public void demo3() { List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { list.add(new Random().nextInt(100)); } for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } // 4.增强for @Test public void demo4() { List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { list.add(new Random().nextInt(100)); } for (int n : list) { System.out.println(n); } } }
对Set集合进行遍历
package cn.itcast.fordemo; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import org.junit.Test; //对Set集合进行遍历 public class Demo2 { // 迭代器 @Test public void demo1() { Set<String> set = new HashSet<String>(); // 使用hashCode与equals来维护唯一性. set.add("def"); set.add("123"); set.add("abc"); for (Iterator<String> it = set.iterator(); it.hasNext();) { System.out.println(it.next()); } } //增强for @Test public void demo2(){ Set<String> set = new HashSet<String>(); // 使用hashCode与equals来维护唯一性. set.add("def"); set.add("123"); set.add("abc"); for(String s:set){ System.out.println(s); } } }
map 遍历
package cn.itcast.fordemo; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.junit.Test; //map 遍历 public class Demo3 { // 使用keySet @Test public void demo1() { Map<String, String> map = new HashMap<String, String>(); map.put("first", "aaaa"); map.put("second", "bbbb"); Set<String> keys = map.keySet(); // 在keys中是 first,second for (String key : keys) { System.out.println("KEY:" + key + " VALUE:" + map.get(key)); } } // 使用entrySet @Test public void demo2() { Map<String, String> map = new HashMap<String, String>(); map.put("first", "aaaa"); map.put("second", "bbbb"); Set<Map.Entry<String, String>> set = map.entrySet(); for (Map.Entry<String, String> entry : set) { System.out.println(entry.getKey() + " " + entry.getValue()); } } }
数组也可以使用增强for进行遍历
package cn.itcast.fordemo; import org.junit.Test; public class Demo4 { @Test // 数组也可以使用增强for进行遍历 public void demo() { int[] arr={1,2,3,4,5}; for(int n:arr){ System.out.println(n); } } }