靜態導入和可變參數,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());
            }
        }
    }
}

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com