List集合遍历示例
public static void traverseList(){
List<String> listTest = new ArrayList<>();
listTest.add("testOne");
listTest.add("testTwo");
listTest.add("testThree");
// JDK1.7
// 方法1:普通for
for (int i = 0; i < listTest.size(); i++) {
System.out.println("list : " + listTest.get(i));
}
// 方法2:增强型for
for (String str : listTest) {
System.out.println("list :" + str);
}
// 方法3:迭代器
Iterator<String> iteratorList = listTest.iterator();
while(iteratorList.hasNext()){
System.out.println("list : " + iteratorList.next());
}
// JDk1.8
// 方法4: lambda表达式
listTest.forEach(data -> System.out.println("list : " + data));
listTest.forEach(System.out::println);
listTest.stream().filter(data -> !"testOne".equals(data)).forEach( data ->
System.out.println("list : " + data)
);
}
Set集合遍历示例
public static void traverseSet(){
Set<String> setTest = new HashSet<>();
setTest.add("testOne");
setTest.add("testTwo");
setTest.add("testThree");
// JDK1.7
// 方法1:增强型for
for (String str : setTest) {
System.out.println("setTest : " + str);
}
// 方法2:迭代器
Iterator<String> IteratorSet = setTest.iterator();
while(IteratorSet.hasNext()){
System.out.println("IteratorSet : " + IteratorSet.next());
}
// JDK1.8
// 方法3:lambda表达式
setTest.forEach(data -> System.out.println("set : " + data));
setTest.forEach(System.out::println);
setTest.stream().filter(data -> !"testOne".equals(data)).forEach( data ->
System.out.println("set : " + data)
);
}
Map集合遍历示例
public static void traverseMap(){
Map<String, String> mapTest =new HashMap<>();
mapTest.put("one", "valueOne");
mapTest.put("Two", "valueTwo");
mapTest.put("Three", "valueThree");
// JDK1.7
// 方法1:keySet获取键集合
for (String keyTest : mapTest.keySet()) {
System.out.println("key = " + keyTest + "; value = " + mapTest.get(keyTest));
}
// 方法2:迭代器
Iterator<Map.Entry<String,String>> IteratorMap = mapTest.entrySet().iterator();
while (IteratorMap.hasNext()) {
Map.Entry<String, String> entry = IteratorMap.next();
System.out.println("key = " + entry.getKey() + "; value = " + entry.getValue());
}
// 方法3:EntrySet
for (Map.Entry<String, String> entry:mapTest.entrySet()) {
System.out.println("key = " + entry.getKey() + "; value = " + entry.getValue());
}
// JDK1.8
// 方法4:lambda表达式
mapTest.forEach((key,value) -> System.out.println("key= " + key + "; value= " + value));
}
案例展示了JDK1.7与JDk1.8对list、set、map的遍历对比,JDK1.8增加了lambda表达式,简洁明了,但阅读相对不易。