集合—增强for、可变参数、静态导入

本文详细介绍了Java中高级for循环的用法,包括如何遍历集合和数组,以及迭代器的操作。同时,还讲解了JDK1.5版本引入的新特性——可变参数的使用方法,并展示了静态导入的技巧。文章还提供了代码示例,帮助读者更好地理解和应用这些概念。

 

/*
高级for循环
格式:
for(数据类型 变量名 :被遍历的集合(Collection)或者数组)
{}

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

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

传统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 a : al)
		{
			System.out.println(a);	
		}
		
		int[] arr = {1,2,3};
		for(int x : arr)
		{
			System.out.println(x)	;
		}
		
		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)
		{
			System.out.println(me.getKey()+"...."+me.getValue());
		}
		
	}
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/*
JDK1.5版本出现的新特性
方法的可变参数。
在使用时注意:可变参数一定要定义在参数列表的最后边。
*/
class ParamMethodDemo
{
	public static void main(String[] args)
	{
		/*
		int[] arr = {3,4};
		show(arr);
		int[] arr1 = {2,3,4,5};
		show(arr1);
		*/
		
		/*
		可变参数。
		其实就是上一种数组参数的简写形式。
		不要每一次都手动的建立数组对象。
		只要将操作的元素作为参数传递即可。
		隐式将这些参数封装成了数组。
		*/
		//show();
		//show(2,4,5,6);
		show("hahha", 2,4,5,6,2,3,4,5);
	}
	public static void show(String str,int...arr)//可变参数
	{
		System.out.println(arr);	
		System.out.println(arr.length);	

	}
	/*
	public static void show(int[] arr)
	{
			
	}
	*/
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/*
StaticImport 静态导入。

当类名重名时,需要指定具体的包名。
当方法重名时,要指定具体所属的对象或者类
*/
import java.util.*;
import static java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员。
import static java.lang.System.*;//导入了System中所有静态成员
class StaticImport
{
	public static void main(String[] args)
	{
		int[] arr = {3,1,5};
		
		/*
		Arrays.sort(arr);//排序
		int index = Arrays.binarySearch(arr,1);//折半查找
		System.out.println(Arrays.toString(arr));//变成字符串输出
		System.out.println("index: "+index);//输出脚标
		*/
		
		out.println("haha");
		sort(arr);//排序
		int index = binarySearch(arr,1);//折半查找
		out.println(Arrays.toString(arr));//变成字符串输出
		System.out.println("index: "+index);//输出脚标
	}
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

个人总结:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值