Java笔记之Map集合

版权声明:关注微信公众号:摸鱼科技资讯,联系我们 https://blog.csdn.net/qq_36949176/article/details/87892256

Map集合

Map:一次添加一对元素。Collection 一次添加一个元素。
    Map也称为双列集合,Collection集合称为单列集合。
    其实map集合中存储的就是键值对。 
    map集合中必须保证键的唯一性。 
    
    
常用方法:
1,添加。
    value put(key,value):返回前一个和key关联的值,如果没有返回null.

2,删除。
    void  clear():清空map集合。
    value remove(key):根据指定的key翻 出这个键值对。 

3,判断。
    boolean containsKey(key):
    boolean containsValue(value):
    boolean isEmpty();

4,获取。 
    value get(key):通过键获取值,如果没有该键返回null。
                    当然可以通过返回null,来判断是否包含指定键。 
    int size(): 获取键值对的个数。 
    
                        
    
Map常用的子类:
    |--Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。
        |--Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。         
    |--HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。
    |--TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。 

Map基本使用

取出map中的所有元素

//取出map中的所有元素
//原理:通过keySet方法获取Map中的所有键所在的Set集合,再通过Set迭代器获取每一个键。
//再对每一个键获取其对应的值即可。

package test;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<Integer,String> map=new HashMap<Integer,String>();
		//method(map);
		method_0(map);
		
	}
	
	public static void method_0(Map<Integer, String> map){
		map.put(8, "wangwu");
		map.put(2, "wangwu");
		map.put(1, "xiaoqiang");
		map.put(6, "hha");
		Collection<String> value=map.values();
		Iterator<String> it2=value.iterator();
		while (it2.hasNext()) {
			String v = it2.next();
			System.out.println(v);
		}
			
}
		

	
	public static void method_1(Map<Integer, String> map){
		map.put(8, "wangwu");
		map.put(2, "ss");
		map.put(1, "xiaoqiang");
		map.put(6, "hha");
		/*
		 * 通过Map转成set就可以迭代
		 * 找到了另一个方法。entrySet
		 * 该方法将键和值的映射关系作为对象存储到了Set集合中,而这个映射关系就是Map.Entry类型(结婚证)
		 */
		Set<Map.Entry<Integer, String>> entrySet=map.entrySet();
		Iterator<Map.Entry<Integer, String>> it=entrySet.iterator();
		while (it.hasNext()) {
			Map.Entry<Integer,String> entry= it.next();
			String value=entry.getValue();
			int key=entry.getKey();
			System.out.println(key+"="+value);
	
		}
		
	}
	
	public static void method_2(Map<Integer, String> map){
		map.put(8, "wangwu");
		map.put(2, "ss");
		map.put(1, "xiaoqiang");
		map.put(6, "hha");
		//取出map中的所有元素
		//原理:通过keySet方法获取Map中的所有键所在的Set集合,再通过Set迭代器获取每一个键。
		//再对每一个键获取其对应的值即可。
		Set<Integer> keySet=map.keySet();
		Iterator<Integer> it=keySet.iterator();
		while (it.hasNext()) {
			Integer key = (Integer) it.next();
			String value=map.get(key);
			System.out.println(value);
			
		}
		
	}
	public static void method(Map<Integer, String> map){//学号和姓名
		
		//添加元素
		System.out.println(map.put(8, "wangcai"));//null
		System.out.println(map.put(8, "xiaoqiang"));//wangcai 存相同键,值会覆盖
		map.put(2, "zhangsan");
		map.put(7,"zhaoliu");
		map.put(17,"zhaoliu");
		map.put(27,"zhao");
		//删除
		//System.out.println("remove:"+map.remove(7));
		//判断
		//System.out.println("containskey:"+map.containsKey(7));
		//获取
		//System.out.println("get:"+map.get(8));
		System.out.println(map);

	}
}

猜你喜欢

转载自blog.csdn.net/qq_36949176/article/details/87892256