高级for循环

本文详细介绍了Java中的高级for循环(增强型for循环)的使用方法及其与传统for循环的区别。通过示例展示了如何使用高级for循环遍历集合、数组及Map等数据结构,并对比了不同遍历方式的特点。

/*
高级for循环

格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)
{

}

对集合进行遍历。
只能获取集合元素。但是不能对集合进行操作。

迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。

传统for和高级for有什么区别呢?

高级for有一个局限性。必须有被遍历的目标。

建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。

*/

import java.util.*;

class ForEachDemo
{
public static void main(String[] args)
{

	ArrayList<String> al = new ArrayList<String>();

	al.add("abc1");
	al.add("abc2");
	al.add("abc3");


	for(String s : al)
	{
		//s = "kk";
		System.out.println(s);
	}

	System.out.println(al);
	/*
	Iterator<String> it = al.iterator();

	while(it.hasNext())
	{
		System.out.println(it.next());
	}
	*/

	int[] arr = {3,5,1};

	for(int x=0; x<arr.length; x++)
	{
		System.out.println(arr[x]);
	}
	for(int i : arr)
	{
		System.out.println("i:"+i);
	}


	HashMap<Integer,String> hm = new HashMap<Integer,String>();

	hm.put(1,"a");
	hm.put(2,"b");
	hm.put(3,"c");

	Set<Integer> keySet = hm.keySet();
	for(Integer i : keySet)
	{
		System.out.println(i+"::"+hm.get(i));
	}

// Set<Map.Entry<Integer,String>> entrySet = hm.entrySet();
// for(Map.Entry<Integer,String> me : entrySet)

	for(Map.Entry<Integer,String> me : hm.entrySet())
	{
		System.out.println(me.getKey()+"------"+me.getValue());
	}

}

}

### Java高级 For 循环的用法 Java 提供了一种简化形式的 `for` 循环,称为增强型 `for` 循环(Enhanced For Loop),也被称为“foreach”循环。它主要用于遍历数组或集合中的元素,而无需显式使用索引来访问每个元素。 #### 基本语法 以下是增强型 `for` 循环的基本语法: ```java for (Type element : collectionOrArray) { // 对当前元素进行操作 } ``` 其中: - **Type** 是集合或数组中元素的数据类型。 - **element** 表示每次迭代时的一个单独元素。 - **collectionOrArray** 可以是一个数组或者实现了 `Iterable` 接口的对象(如 `List`, `Set` 等)。 #### 示例代码 以下是一些具体的例子: ##### 1. 遍历数组 假设有一个整数数组,可以使用增强型 `for` 循环打印其所有元素: ```java int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); } // 输出每一项数字 [^5] ``` ##### 2. 遍历列表 对于 `ArrayList` 或其他类型的集合,也可以采用同样的方式: ```java import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> names = new ArrayList<>(); names.add("Alice"); names.add("Bob"); names.add("Charlie"); for (String name : names) { System.out.println(name); // 打印每一个名字 [^6] } } } ``` ##### 3. 修改数组元素 需要注意的是,在增强型 `for` 循环中无法直接修改原数组的内容,因为变量只是副本而非引用。如果需要修改,则需改回传统索引方式实现。 #### 性能考虑 尽管增强型 `for` 循环使代码更简洁易读,但在某些情况下可能不如传统的带索引版本高效。例如当需要同时处理多个关联容器时(比如两个并列数组同步更新)。此时应权衡可维护性和运行效率之间的关系再做决定 [^7]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值