Map:
通常我们这样遍历一个Map
package utils;
import java.util.HashMap;
import java.util.Map;
public class ForEach {
public static void main(String[] args) {
Map<String, Integer> items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60);
for (Map.Entry<String, Integer> entry : items.entrySet()) {
System.out.println("key : " + entry.getKey() + " value : " + entry.getValue());
}
}
}
运行结果:
在java8中你可以使用 foreach + lambda表达式遍历
package utils;
import java.util.HashMap;
import java.util.Map;
public class ForEach {
public static void main(String[] args) {
Map<String, Integer> items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60);
items.forEach((k, v) -> System.out.println("key : " + k + " || value : " + v));
System.out.println("========我是分隔线========");
items.forEach((k, v) -> {
if ("E".equals(k)) {
k = "我是E";
}
System.out.println("key : " + k + " || value : " + v);
});
}
}
运行结果:
List:
package utils;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ForEach {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
System.out.println("=========1:一开始是这样的=========");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("=========2:当然稍微高级一点的是这样=========");
for (int i = 0, lengh = list.size(); i < lengh; i++) {
System.out.println(list.get(i));
}
System.out.println("=========3:还有就是Iterator遍历=========");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("=========4:后来有了增强for循环=========");
for (String str : list) {
System.out.println(str);
}
System.out.println("=========5:java8以后新增的方式forEach=========");
list.forEach(str -> {
if ("C".equals(str)) {
str = "我是C";
}
System.out.println(str);
});
}
}
运行结果:
使用forEach方便书写,提示就可以写出来,但是不方便计数用