day09-集合【Map、可變參數、Collections】

  1. Map接口

    Map集合是使用兩個列來存儲數據,存儲的每個元素都包含了兩個數據(鍵和值),所以map中的一個元素就是一個鍵值對;

    特點:

    1.Map每個元素由鍵與值兩部分組成
    2.Map鍵不能重複,每個鍵對應一個值
    3.鍵和值可以爲null    
    

    *要想得到每個鍵值對中的value,必須通過key得到。

    常用的實現類:
    HashMap:使用Hadh表存儲數據;
    LinkedHashMap: 是用鏈表+Hash表存儲數據;

2.HashMap類

先看map中的方法;
創建Map類型的對象,調用裏面的方法:
    Map map=new HashMap();
常用方法:
    查API

3.遍歷Map集合的方式:

1.第一種方式:Set<K> keySet();
    1.先得到key的集合;
    Set<String>keySet=map.keySet();

    2.遍歷key的集合,得到每一個key;
    for(String key:keySet){
    3.通過key得到value;
    String value=map.get(key);

2.第二種方式:

    1.先得到鍵值對的關係的集合;
    Set<Entry<String,String>>entrySet=map.entrySet();
    2.遍歷鍵值對的關係的集合,得到每個鍵值對的關係的對象;
    for(Entry<String,String>entry:entrySet){
    3.通過鍵值對的關係對象,得到鍵和值;
    String key=entry.getKey();
    String value=entry.getValue();

4.HashMap存儲自定義類型鍵值

三國演義:

    曹操
    劉備
    孫權

水滸傳:

    宋江
    武松
    門慶哥

西遊記:

    孫悟空
    八戒
    白骨精

把這電視劇的中角色分類存儲在map集合中;按照電視劇的名字分類;

分析:

    1.使用三個ArrayList集合分別存儲三個電視劇中的角色;

    2.使用電視劇的名字作爲key,在map中存儲三類角色;

代碼:

    public class HashMapDemo {

        public static void main(String[] args) {

            ArrayList<String> list1 = new ArrayList<String>();
            ArrayList<String> list2 = new ArrayList<String>();
            ArrayList<String> list3 = new ArrayList<String>();

            list1.add("曹操");
            list1.add("劉備");
            list1.add("孫權");

            list2.add("宋江");
            list2.add("武松");
            list2.add("門慶哥");


            list3.add("孫悟空");
            list3.add("八戒");
            list3.add("白骨精");


            Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();

            map.put("三國演義", list1);
            map.put("水滸傳", list2);
            map.put("西遊記", list3);

            Set<Entry<String, ArrayList<String>>> entrySet = map.entrySet();

            for (Entry<String, ArrayList<String>> entry : entrySet) {
                String key = entry.getKey();
                System.out.println(key);
                ArrayList<String> value = entry.getValue();
                for (String name : value) {
                    System.out.println(name);
                }
                System.out.println("--------------");
            }

        }

    }

5.可變參數

從JDK1.5開始添加的這個功能;

格式:
    修飾符  返回值類型  方法名(數據類型...變量名){
                方法體;
        }

    數據類型...變量名  :表示可變參數,表示省略了0個或多個 這個類型的參數;

    例如:
        public int sum(int...i){
            renturn 返回值;
        }
    其中int。。。i,表示省略了0個或多個這個類型的參數;

    作用:
        提高了方法代碼的重複使用率;
        擴展了方法的功能;

    public String contact(String...s){
        renturn 返回字符串拼接的結果;
        }

6.Collections類

一個用來操作集合的工具類;

方法:
    static void sort(List<T> list):對list集合中的元素進行自然升序的排序;
    (對中文的元素不能排序);
    static void shuffle(List<T> list):把list集合中的元素隨機打亂;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章