1. 程式人生 > 實用技巧 >靜態匯入、可變引數、Collections集合工具類

靜態匯入、可變引數、Collections集合工具類

靜態匯入

靜態匯入格式:

import static java.util.Map.Entry

import static XXX.YYY;   匯入後YYY可直接使用。 

可變引數

格式:

修飾符 返回值型別 方法名(引數型別... 形參名){  }
修飾符 返回值型別 方法名(引數型別[] 形參名){  }
public class ParamDemo {
    public static void main(String[] args) {
        int[] arr = {21,89,32};
        int sum = add(arr);
        System.out.println(sum);
        sum = add(21,89,32);//可變引數呼叫形式
        System.out.println(sum);
        
    }

    //JDK1.5之後寫法
    public static int add(int...arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }

    //原始寫法
    /*
    public static int add(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
    */
}

注意:如果在方法書寫時,這個方法擁有多引數,引數中包含可變引數,可變引數一定要寫在引數列表的末尾位置。

public static int add(int...a)//形參中只能有一個可變參
public static int add(double b,int...a)//可以在前面插入引數

Collections集合工具類

Collections是集合工具類,用來對集合進行操作。

    public static <T> void sort(List<T> list) // 集合元素排序
//排序前元素list集合元素 [33,11,77,55]
Collections.sort( list );
//排序後元素list集合元素 [11,33,55,77]
    public static void shuffle(List<?> list) //  集合元素儲存位置打亂
//list集合元素 [11,33,55,77]
Collections.shuffle( list );
//使用shuffle方法後,集合中的元素為[77,33,11,55],每次執行該方法,集合中儲存的元素位置都會隨機打亂

集合巢狀

l Map集合巢狀

HashMap<String, HashMap<String,String>>

HashMap<String, HashMap<Person,String>>

public class Demo03 {
public static void main(String[] args) {
    HashMap<String, HashMap<Person,String >> oracle=new HashMap<String, HashMap<Person,String >>();
    HashMap<Person, String> java0512=new HashMap<Person,String>();
    java0512.put(new Person("小紅",18), "優秀");
    java0512.put(new Person("小白",20), "不及格");
    HashMap<Person, String> java0715=new HashMap<Person,String>();
    java0715.put(new Person("小綠",25), "良好");
    java0715.put(new Person("小黑",23), "及格");
    oracle.put("java0512", java0512);
    oracle.put("java0715", java0715);
    //遍歷
    //1.keySet+增強for
    //獲取所有Key所在的set集合
    Set<String> bigKeys=oracle.keySet();
    //遍歷獲取每一個key
    for(String bigKey:bigKeys){
        String bkey=bigKey;//獲取大Map中的key值
        //獲取大Map中的Velue值
        HashMap<Person,String > bigValue=oracle.get(bkey);
        //遍歷小Map
        //獲取小key所在的set集合
        Set<Person> smallKeys=bigValue.keySet();
        //遍歷取到每一個key
        for(Person smallkey:smallKeys){
            Person skey=smallkey;//獲取小Map中獲取key值
            String sval=bigValue.get(skey);//獲取小map中的value值
            System.out.println(bkey+"..."+skey+"..."+sval);
        }
    }
    //2.keySet+Iterator迭代
    Set<String> b=oracle.keySet();//獲取所有Key所在的set集合
    Iterator<String> bb=b.iterator();//獲取迭代器物件
    while(bb.hasNext()){
        //遍歷大Map中的key值
        String bbb=bb.next();
        //遍歷大Map中的value值
        HashMap<Person,String > bv=oracle.get(bbb);
        //獲取所有key所在的set集合
        Set<Person> xx=bv.keySet();
        //獲取迭代器物件
        Iterator<Person> x1=xx.iterator();
        while(x1.hasNext()){
            Person i=x1.next();//小map的key值
            System.out.println(bbb+",,,"+i+",,,"+bv.get(i));//bv.get(i)小map的key值
        }
    }
    //3.entrySet+增強for
    Set<Map.Entry<String,HashMap<Person,String > >> arr=oracle.entrySet();//獲取Map中所有key和value的對應關係
    for(Map.Entry<String,HashMap<Person,String > > i:arr){//遍歷set集合
        String j=i.getKey();//獲取大Map的key值
        HashMap<Person,String > k=i.getValue();//獲取大Map的value值
        Set<Map.Entry<Person, String>> k1=k.entrySet();//獲取小Map中的所有key和value的對應關係(一對)
        for(Map.Entry<Person, String> aa:k1){//遍歷小map集合
            Person a1=aa.getKey();//獲取小map集合的key值
            String a2=aa.getValue();//獲取小map集合的value值
            System.out.println(j+"ooo"+a1+"ooo"+a2);
        }
    }
    //4.entrySet+Iterator迭代
    Set<Map.Entry<String,HashMap<Person,String >>> brr=oracle.entrySet();//獲取Map中所有key和value的對應關係(一對)
    Iterator<Map.Entry<String,HashMap<Person,String >>> die=brr.iterator();//獲取迭代器物件
    while(die.hasNext()){//遍歷大Map
        Map.Entry<String,HashMap<Person,String >> first=die.next();//大Map的一對值
        String i=first.getKey();//大Map的Key值
        HashMap<Person,String > i1=first.getValue();//大Map的Value值(小Map的一對值)
        Set<Map.Entry<Person,String>> i2=i1.entrySet();//獲取小Map中的所有key和value的對應關係(一對)
        Iterator<Map.Entry<Person,String>> i3=i2.iterator();//獲取迭代器物件
        while(i3.hasNext()){//遍歷小Map
            Map.Entry<Person,String> i4=i3.next();//小Map的一對值
            Person i5=i4.getKey();//小Map的Key值
            String i6=i4.getValue();//小Map的Value值
            System.out.println(i+"..."+i5+"..."+i6);
        }
        
    }
}
}