现在的位置: 首页 > 综合 > 正文

java基础_Day16

2017年11月05日 ⁄ 综合 ⁄ 共 5354字 ⁄ 字号 评论关闭

1,Map集合:   该集合用于存储键值对。键有唯一性。
      1,方法摘要: 
     1,添加
           V put(K key, V value) 
                    将指定的值与此映射中的指定键关联(可选操作)。 
           void putAll(Map<? extends K,? extends V> m) 
                    从指定映射中将所有映射关系复制到此映射中(可选操作)。 
     2,删除
          void clear();//清除所有映射关系。
          remove(Object key);
     3,判断
          boolean containsValue(Object value);// 如果此映射包含指定键的映射关系,则返回 true。
          boolean containsKey(Object key);//如果此映射将一个或多个键映射到指定值,则返回 true
     4,获取
          get(Object key);
          size();
          values();
          entrySet();
          keySet();
2,分类:

Map

     |---Hashtable:底层是哈希表数据结构,不可以存入null键和null值,线程同步,jak1.0,效率底

     |---HashMap:底层是哈希表数据结构,可以存入null键和null值,该集合是不同步的,jdk1.2效率高

     |---TreeMap:底层是二叉树数据结构,线程不同步,可以用于给集合中的键(key)进行排序;和Set很像,Set底层就是使用了Map集合。

3,Map共性方法:

     

import java.util.*;

class MapDemo1

{

     public static void main(String[] args)

     {

          HashMap<String,String> hs = new HashMap<String,String>();

          sop(hs.put("01","java05"));//null

          sop(hs.put("01","java06"));//java05//相同的键,添加的值会覆盖原有键对应的值,并且put方法会返回被覆盖的值。

          hs.put("02","java02");

          hs.put("03","java03");

          hs.put("04","null");

//          sop(hs.remove("04"));//java04

          sop(hs.containsValue("java01"));

          sop(hs.containsKey("01"));

//          hs.clear();

          sop(hs);

          sop(hs.size());

          sop(hs.get("04"));//可以通过get的返回值来判断一个键知否存在。

          Collection<String> coll = hs.values();

          sop(coll);

     }

     public static void sop(Object obj)

     {

          System.out.println(obj);

     }

}

2,Ma集合的两种取出方式:

         1, Set<K> keySet() 

          返回此映射中包含的键的 Set 视图。
          //原理:该方法可以将map集合中所有的键值存入到set集合中,因为set具备迭代器,所以可以迭代去除所有的键值,然后通过get方法获取每一个键对应的值。
          
         2, Set<Map.Entry<K,V>> entrySet() 
          返回此映射中包含的映射关系的 Set 视图。 
          //原理:改方法可以将map集合中健与值的对应关系取出,这个关系的数据类型及时Map.Entry,然后调用Map.Entry的getValue方法和getKey方法获取对应的键和值。
          eg1:
                    import java.util.*;

class KeyDemo

{

     public static void main(String[] args)

     {

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

          map.put("01","java01");

          map.put("02","java02");

          map.put("03","java03");

          map.put("04","java04");

          Set<String> set = map.keySet();

          Iterator<String> it = set.iterator();

          while(it.hasNext())

          {

               String key = it.next();

               System.out.println("key="+key+"   "+"value="+map.get(key));    

          }

     }

}

          eg2:

mport java.util.*;

class EntryDemo

{

     public static void main(String[] args)

     {

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

          map.put("01","java01");

          map.put("02","java02");

          map.put("03","java03");

          map.put("04","java04");

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

          Iterator<Map.Entry<String,String>> it = entry.iterator();

          while(it.hasNext())

          {

               Map.Entry<String,String> guanxi = it.next();

               System.out.println("KEY=="+guanxi.getKey()+"   "+"VALUE=="+guanxi.getValue());

          }

     }

}

3,map扩展:

       eg1: 
import java.util.*;
class employee
{
     private String id;
     private String name;
     employee()
     {
          this.id=id;
          this.name=name;
     }
}
class Mapkuozhan
{
     public static void main(String[] args)
     {
//          常见一个公司map集合:公司名称——————部门集合
          HashMap<String,HashMap<String,String>> fenfen = new HashMap<String,HashMap<String,String>>();
          HashMap<String,String> editor = new HashMap<String,String>();
          HashMap<String,String> customer = new HashMap<String,String>();
          fenfen.put("编辑部",editor);
          fenfen.put("客服部",customer);
          editor.put("01","java01");
          editor.put("02","java02");
          customer.put("a1","vc++01");
          customer.put("a2","vc++02");
          Iterator<String> it = fenfen.keySet().iterator();
          while(it.hasNext())
          {
               String bm_name = it.next();
               HashMap<String,String> bm = fenfen.get(bm_name);
               System.out.println(bm_name);
               printInto(bm);
          }
     }
     public static void printInto(HashMap<String,String> bm)
     {
          Iterator<String> it = bm.keySet().iterator();
          while(it.hasNext())
          {
               String id = it.next();
               String name = bm.get(id);
               System.out.println(id+"   "+name);
          }
     }
}
         eg2:
import java.util.*;
class employee
{
     private String id;
     private String name;
     employee(String id,String name)
     {
          this.id=id;
          this.name=name;
     }
     public String toString()
     {
          return id+":::"+name;
     }
}
class Mapkuozhan2
{
     public static void main(String[] args)
     {
          HashMap<String,List<employee>> fenfen = new HashMap<String,List<employee>>();
          List<employee> editor = new ArrayList<employee>();
          List<employee> customer = new ArrayList<employee>();
          fenfen.put("编辑部",editor);
          fenfen.put("客服部",customer);
          editor.add(new employee("01","java01"));
          editor.add(new employee("02","java02"));
          customer.add(new employee("a1","vc++01"));
          customer.add(new employee("a2","vc++02"));
          Iterator<String> it = fenfen.keySet().iterator();
          while(it.hasNext())
          {
               String bm_name = it.next();
               List<employee> bm = fenfen.get(bm_name);
               System.out.println(bm_name);
               printInto(bm);
          }
     }
     public static void printInto(List<employee> bm)
     {
          Iterator<employee> it = bm.iterator();
          while(it.hasNext())
          {
               employee e = it.next();
               System.out.println(e);
          }
     }
}



     

【上篇】
【下篇】

抱歉!评论已关闭.