Java 集合类学习之Map

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 集合类学习之Map相关的知识,希望对你有一定的参考价值。

package com.fish.map;
import java.util.HashMap;
import java.util.Map;

/*
在现实生活中有些数据是以映射关系存在的,也就是成对存在的,比如: 

民政局 :
键         值
老公        老婆
***      人
一把要锁     锁
双列集合:
-------------| Map  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复。
----------------| HashMap 
----------------| TreeMap
----------------| Hashtable 
 
 Map接口的方法:
 
 添加:
 put(K key, V value) 
 putAll(Map<? extends K,? extends V> m) 
 
 删除
 remove(Object key) 
 clear() 
 
 获取:
 get(Object key) 
 size() 
 
 判断:
 containsKey(Object key) 
 containsValue(Object value) 
 isEmpty() 
 
 */
 
 
public class Demo2 {
    public static void main(String[] args) {
    
        Map<String,String> map = new HashMap<String, String>();
        
        //添加方法
        map.put("杨过","小龙女");
        map.put("郭靖","黄蓉");
        map.put("张无忌","周芷若");
        
        /*
       
        //添加
        System.out.println("返回值:"+map.put("张无忌","赵敏"));  //如果之前没有存在该键,那么返回的是null,如果之前就已经存在该键了,那么就返回该键之前对应的值。并将新的value添加进map中
        
        Map<String,String> map2 = new HashMap<String, String>();
       	map2.put("令狐冲", "任盈盈");
		map2.put("段誉", "王语嫣");;
        map.putAll(map2); // 把map2的元素添加到map集合中。
        */
       
        /*
        //删除
        System.out.println("删除的数据是:"+map.remove("郭靖")) ;  //根据键删除一条map中的数据,返回的是该键对应的值。
        map.clear(); //清空集合中的所有数据。
        */
       
        /* 获取
        System.out.println("根据指定 的键获取对应的值:"+ map.get("段誉"));
        System.out.println("获取map集合键值对个数:"+map.size());
       
        //判断
        System.out.println("判断map集合是否包含指定的键:"+ map.containsKey("张无忌"));
        System.out.println("判断map集合中是否包含指定 的值:"+ map.containsValue("周芷若"));
        
        map.clear();
        map.put(null,null) //null不是Empty
        System.out.println("判断map集合是否为空元素:"+ map.isEmpty());
        */
        
        System.out.println("集合的元素:"+ map);
        
    }
}


package com.fish.map;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/*
迭代:
keySet() 
values() 
entrySet() 
*/
public class Demo3 {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<String, String>();
        //添加方法
        map.put("杨过","小龙女");
        map.put("郭靖","黄蓉");
        map.put("张无忌","周芷若");
        map.put("段誉", "王语嫣");;  
              
        /*
        //map集合中遍历方式一: 使用keySet方法进行遍历 缺点: keySet方法只是返回了所有的键,没有值。 
        Set<String> keys = map.keySet(); //keySet() 把Map集合中的所有键都保存到一个Set类型 的集合对象中返回。
        Iterator<String> it = keys.iterator();
        
        while(it.hasNext()){
            String key = it.next();
            System.out.println("键:"+ key+" 值:"+ map.get(key));
        }
        
        //map集合的遍历方式二: 使用values方法进行 遍历。 缺点: values方法只能返回所有 的值,没有键。
        Collection<String>  c = map.values(); //values() 把所有的值存储到一个Collection集合中返回。
        Iterator<String> it = c.iterator();
        
        while(it.hasNext()){
            System.out.println("值:"+ it.next());
        }
        */
        
        //map集合的遍历方式三: entrySet方法遍历。
       
        Set<Map.Entry<String,String>>  entrys = map.entrySet(); 
        
        Iterator<Map.Entry<String,String>> it = entrys.iterator();
       
        while(it.hasNext()){
            Map.Entry<String,String> entry = it.next();
            System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());
        }
    }
}


package com.fish.map;
import java.util.ArrayList;
class Map{
    //静态内部类 
    static class Entry<K ,V>{
        K  key;
        V value;
    } 
}

public class Demo4 {
        public static void main(String[] args) {
    }
}


本文出自 “小鱼的博客” 博客,谢绝转载!

以上是关于Java 集合类学习之Map的主要内容,如果未能解决你的问题,请参考以下文章

Java 集合类学习之Vector

Java 集合类学习之ArrayList

Java 集合类学习之HashSet

Java 集合类学习之LinkedList

集合框架学习之List接口

Java学习之集合框架工具类