静态导入和可变参数,Collections集合工具类,集合嵌套

1 静态导入

在导包的过程中我们可以直接导入静态部分,这样某个类的静态成员就可以直接使用了。在源码中经常会出现静态导入。

静态导入格式:

import static XXX.YYY;   导入后YYY可直接使用。 

2 可变参数

在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式:

修饰符 返回值类型 方法名(参数类型... 形参名){  }

其实这个书写完全等价与

修饰符 返回值类型 方法名(参数类型[] 形参名){  }

只是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据即可。

public class Demo02 {
    public static void main(String[] args) {
        System.out.println(add(1,2));
        System.out.println(add(1,2,3,4));
    }
    //写一个求和的方法,参数都是整形
    //(可变参数)
    //注意:只能有一个可变参数,放在最后面
    public static int add(int...a){
        int sum=0;
        for(int i:a){
            sum+=i;
        }
        return sum;
    }
}

3 Collections集合工具类

public class Demo03 {
    public static void main(String[] args) {
        List<Integer>list=new ArrayList<Integer>();
        list.add(55);
        list.add(1);
        list.add(22);
        list.add(23);
        list.add(9);
        //对集合进行排序
        Collections.sort(list);
        for(int i:list){
            System.out.println(i);
        }
        //对集合元素随机打乱
        Collections.shuffle(list);
        for(int i:list){
            System.out.println(i);
        }
    }
}

4 集合嵌套练习

public class Demo06 {
    public static void main(String[] args) {
        HashMap<String,HashMap<Person,String>>map=new HashMap<String,HashMap<Person,String>>();
        HashMap<Person,String>m1=new HashMap<Person,String>();
        HashMap<Person,String>m2=new HashMap<Person,String>();
        m1.put(new Person("张三",22), "java1203班");
        m1.put(new Person("李四",22), "java1203班");
        m2.put(new Person("王五",22), "java1204班");
        m2.put(new Person("李三",22), "java1204班");
        map.put("清华", m1);
        map.put("北大", m2);
        //keySet+for
        //获取所有学校名称
        Set<String>schools=map.keySet();
        for(String sc:schools){
            HashMap<Person,String> classes=map.get(sc);
            Set<Person>ps=classes.keySet();
            for(Person p:ps){
                String classname=classes.get(p);
                System.out.println("学校名称为:"+sc+",班级名称为:"+classname+",学生姓名为"+p.getName()+
                        "学生年龄为:"+p.getAge());
            }
        }
    }
}
原文地址:https://www.cnblogs.com/quanjunkang/p/10646901.html