采用增强for遍历集合
在遍历集合时,我们大多数采用for循环的形式遍历集合中的元素,也可采用迭代器遍历结合,还有一种简化了的for循环可以对集合进行遍历。
增强for循环格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
使用这种寻韩对集合或数组进行遍历时,要明确两点,一是要知道荣i中的元素是什么数据类型,二是要知道容器的名字, 下面通过一个例子来演示
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1004);
list.add(1000);
list.add(1002);
list.add(10026);
System.out.println(list);
//迭代器遍历
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()){
Integer next = iterator.next();
System.out.print(next+"\t");
}
System.out.println();
//普通for循环遍历
for (int i = 0; i < list.size(); i++) {
Integer integer = list.get(i);
System.out.print(integer+"\t");
}
//增强for循环遍历
System.out.println();
for (Integer integer : list) {
System.out.print(integer+"\t");
}
}
运行结果:
**注意:**我们在使用增强for时,如果要对容器增删或者修改操作,系统会抛出并发修改异常,
for (Integer integer : list) {
if (integer.equals(1004)) {
list.add(10);
}
如果你要对容器中的数据进行增删操作,只能用普通for循环
可变参数
有时候定义方法时,尚且不知道要传躲闪个参数,就可以定义可变参数,
格式: 修饰符 返回值类型 方法名 (数据类型…参数名){}
**注意:**这里的变量其实是一个数组。
我们用可变参数做一个求和的方法
public static void main(String[] args) {
System.out.println(add(1));
System.out.println(add(1, 2, 3, 4, 5));
}
public static int add(int...num){
int sum=0;
for (int i : num) {
sum*=i;
}
return sum;
}
运行结果: