Map接口

《1》 HashMap:无序,key不允许重复。
    a.向集合中增加和取出内容:  

           声明Map接口对象时指定好了key和value的泛型类型,之后通过put()方法向Map集合中增加内容,最后通过get()方法取出一个key对应的value内容。

   b. 判断指定的key或value是否存在

          如果要判断某一个指定的key或value是否存在,可以使用Map接口中提供的containsKey(Object key)和containsValue(Object value)两个方法
   
   c. 输出全部的key:

           在Map中提供了一个叫做keySet()的方法,可以将一个Map中的全部key变为一个Set集合,一旦有了Set实例,就可以直接使用Iterator输出。但是在进行操作时一定要注意的是,接收的Set集合中指定的泛型要和Map中key的泛型类型保持一致。
    
     d.输出全部的value :

              如果要输出全部的value,则使用values()方法,此方法的返回类型是Collection。在进行操作时也同样需要注意泛型的类型。

 

 

《2》Hashtable:无序,key不允许重复。

      Hashtable和HashMap方法几乎一样。。。

例:

//下面函数对于HashMap和HashTable都成立。

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

map.put("a","aaa");
map.put("b","bbb");
map.put("c","ccc");

//所有的key值
Set<String> mkey = map.keySet();
Iterator<String> iterk = mkey.iterator();
while(iterk.hasNext()) {
  System.out.println(iterk.next());
}
//所有的Value值
Collection<String> vmap = map.values();
Iterator<String> iterv = vmap.iterator();
while(iterv.hasNext()) {
   System.out.println(iterv.next());
}
 

 

 

《3》HashMap和HashTable的区别

 

比较HashMapHashTable
性能异步处理,性能高同步处理,性能低
线程安全非线程安全操作类线程安全操作类

   用HashMap还是比较多的  。

 

《4》TreeMap:排序,按集合中的key排序,key不允许重复。

     TreeMap可以按照key排序,之前的代码使用的是String类作为key,因为String 类本身已经实现了Comparable接口,所以程序执行时不会有任何的问题;而如果使用一个自定义的类作为key,则此类必须实现Comparable 接口,否则将出现类转换异常。

 

 《5》注意事项 (Map很少直接输出,一般做查询使用)

   不能直接使用迭代输出Map中的全部内容

    (1)将Map的实例通过entrySet()方法变为Set接口对象。

    (2)通过Set接口实例为Iterator实例化。

    (3)通过Iterator迭代输出,每个内容都是Map.Entry的对象。

    (4)通过Map.Entry进行key→value的分离。

在前面提过,Map中的每对数据都是通过Map.Entry保存的,所以如果最终要进行输出也应该使用Map.Entry完成。

 

例:在上一篇Map.Entry提到了!!!

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值