/*
高级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);//输出脚标
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
个人总结:
本文详细介绍了Java中高级for循环的用法,包括如何遍历集合和数组,以及迭代器的操作。同时,还讲解了JDK1.5版本引入的新特性——可变参数的使用方法,并展示了静态导入的技巧。文章还提供了代码示例,帮助读者更好地理解和应用这些概念。

被折叠的 条评论
为什么被折叠?



