foreach 和 for 的区别
foreach的书写格式:
for(元素类型 变量名称 : 遍历数组(集合)(或者能进行迭代的)){
语句
}
foreach适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。
主要是增强了for循环,在遍历数组,集合上会更加方便
可以遍历的内容:数组,Collection ----直接遍历 Map -------间接遍历
foreach是for循环的简化版本,但是不能完全替代for循环,
public static void main(String[] args) {
List<String> arr = new ArrayList<String>(); //添加数据到List数组 arr.add("你好"); arr.add("我好"); arr.add("他也好"); arr.add("哈喽");
/*
* 原理:当执行增强for循环时,会从数组中自动按照顺序取值,取出的值会放入前面的变量中,
* 本次循环使用的就是当前的变量结束后,自动开始第二次变量,会自动从数组中取出第二个元素,
* 再次放入前面的变量中依次进行下去,直到将数组中的元素取完,自动停止.
*/
//foreach循环 for(String str:arr){ //这里的str就是获取每次循环的arr中的值 System.out.println(str) ; //就相当于 String str = arr[i]; } }
Map集合中使用foreach来遍历
package start; import java.util.HashMap; import java.util.Map; import java.util.Set; public class Demo1 { public static void main(String[] args){ Map<String,String> map = new HashMap<String, String>(); map.put("你好啊","杰瑞"); map.put("你好哦","汤姆"); map.put("你好呀","汤姆哥"); map.put("你好嗨","杰瑞弟"); //使用entry.set方法 //使用foreach循环遍历集合 for(Map.Entry<String,String> entry: map.entrySet()){ //这里的Map.Entry<String, String>就是一个数据类型 用来表示键值对的类型 System.out.print("key:" + entry.getKey()); System.out.println(" value:" + entry.getValue()); } //亦可以使用keySet方法 //得到set Set <String> set = map.keySet(); //使用增强for遍历 for (String key : set) { System.out.println("key:"+key+" value"+map.get(key)); } } }
foreach简化了流程,提高了代码的可读性和安全性。在遇到数组或者集合索引的情况下,foreach就不好用了。而且foreach一般都是结合泛型使用。
foreach只是来循环遍历集合或者数组的时候会方便点,for则在复杂的循环中使用效率更高.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步