程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java基礎Map接口+Collections工具類,collections工具類

Java基礎Map接口+Collections工具類,collections工具類

編輯:JAVA綜合教程

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);
    }

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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved