增强for循环和可变参数

      增强for概述:
                       简化数组和Collection集合的遍历
             格式:
                    for(元素数据类型 变量 : 数组或者Collection集合) {
                             使用变量即可,该变量就是元素
                     }

package org.westos.Demo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

//测试类
public class ForDemo {
    public static void main(String[] args) {//主方法
        ArrayList<Student> al = new ArrayList<>();//创建一个ArrayList集合

        Student s1 = new Student("小里", 20);//创建五个学生对象
        Student s2 = new Student("小的", 12);
        Student s3 = new Student("小任", 23);
        Student s4 = new Student("小额", 24);
        Student s5 = new Student("小体", 25);

        al.add(s1);//将以上五个学生对象放入集合内
        al.add(s2);
        al.add(s3);
        al.add(s4);
        al.add(s5);
        //用ArrayList中的size()和get()方法对集合进行遍历
        for (int i = 0; i < al.size(); i++) {
            Student student = al.get(i);
            System.out.println(student.getName() + "------" + student.getAge());
        }
//
//        用ArrayList中的迭代器进行遍历(List中特有的迭代器)
        ListIterator<Student> li = al.listIterator();//获取一个迭代器
        while (li.hasNext()) {
            Student student1 = li.next();
            System.out.println(student1.getName() + "----" + student1.getAge());
        }
//
//        Iterator<Student> iterator = al.iterator();//实现Collection中的迭代器
//        while(iterator.hasNext()){
//            Student student2 = iterator.next();
//            System.out.println(student2.getName()+"----"+student2.getAge());
//        }

        //用增强for循环进行遍历
        for (Student stu : al) {// 使用增强for循环相对于一般for循环和迭代器来说大大简化了代码量。
            System.out.println(stu.getName() + "------" + stu.getAge());
        }


    }
}



package org.westos.Demo;

public class Student {
    private String name;
    private  int age;
    //无参构造
    public Student() {
    }
    //有参构造
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //setXXX和getXXX方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    //重写toString方法
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

可变参数:

                 可变参数概述:  定义方法的时候不知道该定义多少个参数
                               格式:            修饰符 返回值类型 方法名(数据类型…  变量名){}
                      注意事项:
                                这里的变量其实是一个数组
                                如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个

package org.westos.demo2;


import java.io.Serializable;
import java.util.Arrays;
import java.util.List;

public class MyTest {

    public static void main(String[] args) {
        int sum = addMthod(1, 2);
       // System.out.println(sum);

        int sum2 = addMthod(1, 2, 3);
        int sum3 = addMthod(1, 2, 3,4);
        //
        System.out.println(sum);
        System.out.println(sum2);
        System.out.println(sum3);


        List<String> strings = Arrays.asList("abc", "222", "hehe", "hehe");



    }

    //private static int addMthod(int a, int b) {
    //    return a + b;
    //}
    //
    //private static int addMthod(int a, int b, int c) {
    //    return a + b + c;
    //}
    //
    //private static int addMthod(int a, int b, int c, int d) {
    //    return a + b + c + d;
    //}


    //可变参数 数据类型... 变量名
    private static int addMthod(int... a) {
       //可变参数本质上是个数组
       // System.out.println(a.length);
        int sum=0;
        for(int num:a){
            sum+=num;
        }

        return sum;
    }


}


Arrays工具类的asList()方法的使用:

       Arrays工具类的asList(T... t)方法的使用:        将数组转换成集合
        注意事项:    得到的集合长度是不可变的 你不能往这个转换后的集合中 添加元素(add) 和 删除元素(remove)

猜你喜欢

转载自blog.csdn.net/qq_41942241/article/details/81393185