麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Map筆記總結(jié)

2019-11-15 01:15:30
字體:
供稿:網(wǎng)友
Map筆記總結(jié)

Map :存儲的是鍵值對,一對一對出現(xiàn)的,要保證鍵的唯一性.

Map常見的三個(gè)子類.1.HashTable 底層是哈希表結(jié)構(gòu),不能存在null的情況.該集合是線程同步的.效率低此類實(shí)現(xiàn)一個(gè)哈希表,該哈希表將鍵映射到相應(yīng)的值。任何非 null 對象都可以用作鍵或值。2.HashMap底層是哈希表數(shù)據(jù)結(jié)構(gòu),允許null值和null鍵,該集合不同步. 效率高3.TreeMap 底層是二叉樹結(jié)構(gòu), 線程不同步,具備排序的特點(diǎn).可以給Map集合中的鍵排序.與Set很像,Set集合的底層就是使用了Map集合方法.

Map其共性方法有:

1.添加  put()  putAll()2.刪除  clear();  remove();3.判斷  containsValue(Object value)  containsKey(Object key)  isEmpty();4.獲取  get();  size();  values();

基本共性方法代碼演示:

import java.util.*;class MapDemo{    public static void main(String [] args)    {        Map<String,String> map = new HashMap<String,String>();  //Hash無序的.                //添加元素,添加了相同的鍵,后添加的值會將原先的鍵對應(yīng)的值替換掉.put方法會返回原先被覆蓋的值.                sop("Put :"+map.put("01","zhangsan01"));        sop("Put :"+map.put("01","wangwu"));        map.put("02","zhangsan02");        map.put("03","zhangsan03");                //判斷是否包含        sop("containsKey : zhangsan01 "+"------"+map.containsKey("01"));        //sop("remove : "+map.remove("03"));  //找尋鍵,并打印出其對應(yīng)的值: zhangsan03                //獲取        sop("get : "+map.get("02"));                 map.put("04",null);          sop("get : "+map.get("04"));        //可以通過個(gè)get方法的返回值來判斷一個(gè) 鍵 是否存在. 通過返回null來判斷.                //獲取Map集合中的所有值        Collection<String> coll =  map.values();        sop(coll);                sop(map);    }    public static void sop(Object obj)    {        System.out.PRintln(obj);        }    }

Map的重點(diǎn)方法:  entrySet()  KeySet()這兩種方法就是Map集合取出元素的方式:

Map集合兩種取出方式:

1.Set<k> keySet 將Map中所有的鍵存入到Set集合.Set具備迭代器,可以用迭代取出所有的鍵.在根據(jù)get方法,獲取每個(gè)鍵所對應(yīng)的值.Map集合取出原理:轉(zhuǎn)成Set集合.在通過迭代器取出.

2.Set<Map.Entry<k,v>> entrySet

將map集合中的 映射關(guān)系 存入到Set集合中,這個(gè)關(guān)系的數(shù)據(jù)類型是 : Map.Entry

其中Entry其實(shí)是一個(gè)內(nèi)部接口.定義在map接口里面

格式如下:interface Map{  public static interface Entry  {    public static void getValue();    public static void getKey();  }}class HashMap implements Map{  class Hash implements Map.Entry  {    public Object getValue(){};    public Object getKey(){};  }}

兩種取出方式的代碼演練:

/*Map集合兩種取出方式:    1.Set<k> keySet             將map中所有的鍵存入到Set集合.Set具備迭代器,可以用迭代取出所有的鍵.            在根據(jù)get方法,獲取每個(gè)鍵鎖對應(yīng)的值.                        Map集合取出原理:轉(zhuǎn)成Set集合.在通過迭代器取出.                            2.Set<Map.Entry<k,v>>  entrySet ,將map集合中的 映射關(guān)系 存入到Set集合中,這個(gè)關(guān)系的數(shù)據(jù)類型是 : Map.Entry        Entry其實(shí)是一個(gè)內(nèi)部接口.定義在map接口里面    interface Map    {        public static interface  Entry        {            public static void getValue();            public static void getKey();        }            }        class HashMap implements Map    {        class Hash implements Map.Entry        {            public Object getValue(){};            public Object getKey(){};        }    }    */import java.util.*;class MapDemo2{    public static void main(String [] args)    {        Map<String,String> map = new HashMap<String,String>();                  map.put("01","zhangsan01");        map.put("02","zhangsan02");        map.put("03","zhangsan03");        map.put("04","zhangsan04");                //將map集合中的 映射關(guān)系 取出.                Set<Map.Entry<String,String>> mapEntry = map.entrySet();                Iterator<Map.Entry<String,String>> it = mapEntry.iterator();                while(it.hasNext())        {            Map.Entry<String,String> me = it.next();                        String key = me.getKey();            String value = me.getValue();            sop("Key :"+key+"Value :"+value);        }                                /*                //獲取Map集合的所有鍵,并放在Set集合中. 獲取方法: keySet();        Set<String> keySet = map.keySet();                //迭代取出所有的鍵.        Iterator<String> it = keySet.iterator();                while(it.hasNext())        {            String key = it.next();                        //有了鍵以后可以通過Map集合的get(key)方法獲取其對應(yīng)的值.            String value = map.get(key);            sop("Key :"+key+" Value :"+value);        }                */            }    public static void sop(Object obj)    {        System.out.println(obj);        }    }

相關(guān)練習(xí):

/*練習(xí):                每一個(gè)學(xué)生都有對應(yīng)的歸屬地。        鍵值對:    學(xué)生Student為鍵,地址類型String值。        學(xué)生屬性:姓名,年齡。        注意:姓名和年齡相同的視為同一個(gè)學(xué)生。        保證學(xué)生的唯一性。        1.描述學(xué)生。        2.定義map容器。將學(xué)生作為鍵,地址作為值。存入。        3.獲取map集合中的元素。*/import java.util.*;class MapTest{    public static void main(String [] args)    {        Map<Student,String> map = new HashMap<Student,String>();                  map.put(new Student("zhangsan01",21),"beijing");        map.put(new Student("zhangsan02",22),"shanghai");        map.put(new Student("zhangsan03",23),"guangzhou");        map.put(new Student("zhangsan04",24),"shenzhen");            //第一種取出方式:keySet        Set<Student> keySet = map.keySet();                Iterator<Student> it = keySet.iterator();                while(it.hasNext())        {            Student stu = it.next();                        String addr = map.get(stu);                        sop("第一種取出方式 : student : "+stu.getName()+", age : "+stu.getAge()+", address : "+addr);            }        sop("-----------------------------------------");        //第二種取出方式:entrySet                Set<Map.Entry<Student,String>> entrySet = map.entrySet();                Iterator<Map.Entry<Student,String>> iter = entrySet.iterator();                while(iter.hasNext())        {            Map.Entry<Student,String> me = iter.next();                        Student stu = me.getKey();                        String addr = me.getValue();                        sop("第二種取出方式 : student : "+stu.getName()+", age : "+stu.getAge()+", adresss :"+addr);        }                          }    public static void sop(Object obj)    {        System.out.println(obj);        }    }class Student implements Comparable<Student>{    private String name;    private int age;        Student(String name,int age)    {        this.name = name;        this.age = age;    }        public int compareTo(Student s)    {        if(!(s instanceof Student))            throw new ClassCastException("類型匹配失敗");                    int num = new Integer(this.age).compareTo(new Integer(s.age));            if(num == 0)            {                return this.name.compareTo(s.name);            }                return num;    }                public int hashCode()    {        return name.hashCode()+age*17;    }        public boolean equals(Object obj)    {        if(!(obj instanceof Student))            throw new ClassCastException("類型匹配失敗");                Student stu = (Student)obj;                return this.getName().equals(stu.getName()) && this.age==stu.age;    }        public void setName(String name)    {        this.name = name;    }        public void setAge(int age)    {        this.age = age;    }        public String getName()    {        return name;    }        public  int getAge()    {        return age;    }    }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人一区二区三区四区 | 污版视频在线观看 | 激情小说激情图片激情电影 | 欧美交在线 | 欧美精品久久久久久久久久 | 日本不卡二区 | 牛牛视频在线 | 免费男女乱淫真视频 | 色人阁在线视频 | 一本色道久久综合狠狠躁篇适合什么人看 | 日日做夜夜操 | 免费a级毛片大学生免费观看 | 亚洲精品久久久久久久久久 | 99精品国产视频 | 亚洲成人午夜精品 | 精品国产91久久久久久久妲己 | 国产91小视频在线观看 | 久久久久久久久久久久久久国产 | 国产精品视频2021 | 99国内精品视频 | 精品久久www | 深夜网站在线观看 | 久久久久久久久久久国产精品 | 久久精品亚洲一区 | 亚洲国产精品一区二区久久 | 毛片一级片 | 露脸各种姿势啪啪的清纯美女 | 九九热在线视频观看这里只有精品 | 日本看片一区二区三区高清 | 成人在线精品视频 | 亚洲第五色综合网 | 国产成人av在线播放 | 一区二区三区在线视频观看58 | 国av在线 | 成人av一区二区免费播放 | 久久久久99一区二区三区 | 国内精品视频饥渴少妇在线播放 | 国产毛片毛片 | 亚洲网站在线观看 | 国产精品视频六区 | 美国黄色毛片女人性生活片 |