码迷,mamicode.com
首页 > 编程语言 > 详细

Java集合Map接口与Map.Entry学习

时间:2015-05-09 16:38:06      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:java   map   iterator   hashmap   map.entry   

Map接口不是Collection接口的继承。Map接口用于维护键/值对(key/value pairs)。该接口描述了从不重复的键到值的映射。

  (1) 添加、删除操作:
  Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像。如果该关键字已经存在,那么与此关键字相关的新值将取代旧值。方法返回关键字的旧值,如果关键字原先并不存在,则返回null
  Object remove(Object key): 从映像中删除与key相关的映射
  void putAll(Map t): 将来自特定映像的所有元素添加给该映像
  void clear(): 从映像中删除所有映射
  “键和值都可以为null。但是,您不能把Map作为一个键或值添加给自身。”
  (2) 查询操作:
  Object get(Object key): 获得与关键字key相关的值,并且返回与关键字key相关的对象,如果没有在该映像中找到该关键字,则返回null
  boolean containsKey(Object key): 判断映像中是否存在关键字key
  boolean containsValue(Object value): 判断映像中是否存在值value
  int size(): 返回当前映像中映射的数量
  boolean isEmpty() :判断映像中是否有任何映射
  (3) 视图操作 :处理映像中键/值对组
  Set keySet(): 返回映像中所有关键字的视图集
  “因为映射中键的集合必须是唯一的,您用Set支持。你还可以从视图中删除元素,同时,关键字和它相关的值将从源映像中被删除,但是你不能添加任何元素。”
  Collection values():返回映像中所有值的视图集
  “因为映射中值的集合不是唯一的,您用Collection支持。你还可以从视图中删除元素,同时,值和它的关键字将从源映像中被删除,但是你不能添加任何元素。”
  Set entrySet(): 返回Map.Entry对象的视图集,即映像中的关键字/值对
  “因为映射是唯一的,您用Set支持。你还可以从视图中删除元素,同时,这些元素将从源映像中被删除,但是你不能添加任何元素。”
  Map.Entry接口
  Map的entrySet()方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键/值对。

  通过这个集合的迭代器,您可以获得每一个条目(唯一获取方式)的键或值并对值进行更改。当条目通过迭代器返回后,除非是迭代器自身的remove()方法或者迭代器返回的条目的setValue()方法,其余对源Map外部的修改都会导致此条目集变得无效,同时产生条目行为未定义。
  (1) Object getKey(): 返回条目的关键字
  (2) Object getValue(): 返回条目的值
  (3) Object setValue(Object value): 将相关映像中的值改为value,并且返回旧值

例子:java代码:

package edu.smc.test;  
  
import java.util.HashMap;  
import java.util.Iterator;  
import java.util.Map;  
import java.util.Map.Entry;  
  
public class TestEntrySet {  
    public static void main(String[] args) {  
        Map<String,String> map=new HashMap<String,String>();  
        map.put("1", "张三");  
        map.put("2", "李四");  
        map.put("3", "王五");  
        /*方法一 :迭代程序*/  
        System.out.println("方法一:");  
        Iterator iterator=map.entrySet().iterator();  
        while(iterator.hasNext()){        
           Map.Entry<String, String> entry= (Entry<String, String>) iterator.next();  
           System.out.println("key:"+entry.getKey()+" value"+entry.getValue());    
          }         
        /*方法二*/  
        System.out.println("方法二:");  
        for (Map.Entry<String, String> m : map.entrySet()) {  
              System.out.println("key:"+m.getKey()+" value"+m.getValue());  
          }   
      }  
}  

结果如下:

  1. 1.方法一:    
  2. 2.key:3 value王五    
  3. 3.key:2 value李四    
  4. 4.key:1 value张三    
  5. 5.方法二:    
  6. 6.key:3 value王五    
  7. 7.key:2 value李四    
  8. 8.key:1 value张三 


Java集合Map接口与Map.Entry学习

标签:java   map   iterator   hashmap   map.entry   

原文地址:http://blog.csdn.net/yayun0516/article/details/45601559

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!