Java基礎Map介面+Collections工具類,collections工具類

來源:互聯網
上載者:User

Java基礎Map介面+Collections工具類,collections工具類

1.Map中我們主要講兩個介面 HashMap  與   LinkedHashMap

   (1)其中LinkedHashMap是有序的  怎麼存怎麼取出來

  我們講一下Map的增刪改查功能:

        /*         * Map集合的添加         */        Map<String, String> map = new HashMap<String, String>();        map.put("星期一", "Monday");        map.put("星期六", "Sunday");        System.out.println(map);                /*         * 通過建   擷取值         */        String string = map.get("星期六");        System.out.println(string);                /*         * 通過建  修改值         */        map.put("星期一", "Mon");        System.out.println(map);                /*         * 通過建  刪除值         */        String remove = map.remove("星期六");        System.out.println(remove);        System.out.println(map);    }

 

 以上就是Map的增刪改查方法

 

2.Map的遍曆

 1.第一種:通過keySet()方法擷取集合的所有建 儲存在Set<>集合中

    (1)增強for

    (2)迭代器

  Map<String, Character> map =new LinkedHashMap<String, Character>();
        map.put("一", '1');
        map.put("二", '2');
        map.put("三", '3');
        map.put("四", '4');
        map.put("五", '5');
        Set<String> set = map.keySet();

       (1)增強for

    for (String string : set) {
            System.out.println(string+" "+map.get(string));
        }

  (2)迭代器

    Iterator<String> iterator = set.iterator();
            while(iterator.hasNext()){
            String str=iterator.next();
            Integer integer = map.get(str);
            System.out.println(str+"   "+integer);
        }

第二種 通過 Map.Entry<K,V>    在Map類設計時,提供了一個嵌套介面:Entry。  Entry將索引值對的對應關係封裝成了對象。

          getKey()方法:擷取Entry對象中的鍵
          getValue()方法:擷取Entry對象中的值
          entrySet()方法:用於返回Map集合中所有的索引值對(Entry)對象,以Set集合形式返回。

       (1)增強for

      Set<Entry<String, Character>> entries = map.entrySet();
            for (Entry<String, Character> entry : entries) {
                String str = entry.getKey();
                Character character = entry.getValue();
                System.out.println(str+"   "+character);

       }

       (2)迭代器

    Set<Map.Entry<String, String>> entries = map.entrySet();
          Iterator<Map.Entry<String, String>> iterator = entries.iterator();
          while(iterator.hasNext()){
                Entry<String, String> entry = iterator.next();
                System.out.println(entry.getKey()+"  "+entry.getValue());
        }

 

3.Map之嵌套

    我們在嵌套Map中傳入參考型別Person  這裡記得要重寫equlas與HashCode方法

    private static void fun6() {        Map<Person, String> map1 = new LinkedHashMap<Person, String>();        map1.put(new Person("黃曉明", 40), "北京");        map1.put(new Person("AnlayBay", 36), "北京");                Map<Person, String> map2 = new LinkedHashMap<>();        map2.put(new Person("宋江",40), "梁山");        map2.put(new Person("林沖",40), "豹子頭");                Map<Map<Person,String>, String> map = new LinkedHashMap<>();        map.put(map1, "第一組");        map.put(map2, "第二組");                for (Entry<Map<Person,String>, String> zhu: map.entrySet()) {            String value = zhu.getValue();            for (Entry<Person, String> entry : zhu.getKey().entrySet()) {                Person key = entry.getKey();                String value2 = entry.getValue();                System.out.println(value+".."+key+".."+value2);            }        }            }    /**     * 迭代器遍曆     */    private static void fun5() {        Map<Person, String> map1 = new LinkedHashMap<Person, String>();        map1.put(new Person("黃曉明", 40), "北京");        map1.put(new Person("AnlayBay", 36), "北京");                Map<Person, String> map2 = new LinkedHashMap<>();        map2.put(new Person("宋江",40), "梁山");        map2.put(new Person("林沖",40), "豹子頭");                Map<Map<Person,String>, String> map = new LinkedHashMap<>();        map.put(map1, "第一組");        map.put(map2, "第二組");                Set<Map<Person,String>> set = map.keySet();        Iterator<Map<Person, String>> iterator = set.iterator();        while(iterator.hasNext()){            Map<Person, String> next = iterator.next();            String string = map.get(next);                        Set<Person> persons = next.keySet();            Iterator<Person> iterator2 = persons.iterator();            while(iterator2.hasNext()){                Person next2 = iterator2.next();                String string2 = next.get(next2);                System.out.println(string2+"   "+next2+"    "+string);            }        }    }

這裡我補充一個集合的工具類

Collections

public static void main(String[] args) {        ArrayList<String> arrayList = new  ArrayList<>();        arrayList.add("a");        arrayList.add("s");        arrayList.add("g");        arrayList.add("d");                //排序        Collections.sort(arrayList);        System.out.println(arrayList);                //翻轉        Collections.reverse(arrayList);        System.out.println(arrayList);                //打亂順序        Collections.shuffle(arrayList);        System.out.println(arrayList);                //二分尋找        List<Integer> integers = new ArrayList<>();        Collections.addAll(integers, 1,2,3,4,5,7,8);        System.out.println(integers);        int binarySearch = Collections.binarySearch(integers, 6);        System.out.println(binarySearch);                //打亂shuffle        Collections.shuffle(integers);        System.out.println(integers);    }

今天大部分用代碼展示了,不多做介紹,集合這一模組  無非就是增刪改查   還有遍曆,我在學習的過程中  基本每一個集合的方法我都會敲十遍加深印象  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.