Java学习笔记之集合(七):Map集合的方法

package com.collection.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;
 
import org.junit.Test;
 
/*
现实生活中,有些数据是以映射关系存在的,也就是成对出现的,例如:
	老公------老婆
	一把锁-----钥匙
	身份证-----人
成对出现并有映射关系的数据一般用双列集合来存储;
双列集合的根接口:Map
------| Map:如果是实现了Map接口的集合类,具备的特点:存储的数据都是以键值对的方式存在的,键不可重复,值可以重复;
---------| HashMap:
---------| TreeMap:
---------| HashTable:
Map接口的方法:
	
	添加:
		put(K key, V value):添加元素 ;
		putAll(Map<? extends K,? extends V> m):将一个集合中的元素添加到另一个集合中; 
	
	删除:
		remove(Object key):根据键删除对应的值;如果键存在,返回对应的值;如果键不存在,返回null; 
		clear():清空集合中的所有元素;
		
	获取:
		get(Object key):根据键获取对应的值; 如果键不存在,返回null;
		size():获取集合中元素的个数;
	
	判断:
		containsKey(Object key):判断集合中是否包含指定的键; 如果不存在,返回false;反则反之;
		containsValue(Object value):判断集合中是否包含指定的值; 如果不存在,返回false;反则反之;
		isEmpty():判断集合是否为空;如果为空,返回true;否则返回false;
	
	迭代:
		keySet()
		values()
		entrySet()
 */
 
public class Demo1 {
	
	// 添加方法
	@Test
	public void test1(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("汪峰", "章子怡");
		map.put("文章", "马伊琍");
		
		// put()返回值:如果之前没有存在该键,则返回null;如果之前已经存在该键,则返回该键之前对应的值;
		// 第一次添加元素,键不存在,返回null;
		System.out.println("返回值:" + map.put("谢霆锋", "张柏芝")); 	// 返回值:null
		// 第二次添加元素,键已经存在,返回键之前对应的值;键不可重复,不能存在两个键一样的元素;
		System.out.println("返回值:" + map.put("谢霆锋", "王菲"));; 	// 返回值:张柏芝
		
		// 值可以重复:
		map.put("窦唯", "王菲");
				
		System.out.println("集合中的元素:" + map); // 输出的顺序和添加的顺序不一致
		
		
		Map<String, String> map2 = new HashMap<String, String>();
		map2.put("邓超", "孙俪");
		map2.put("张家辉", "关咏荷");
		map.putAll(map2); 	// 将map2集合中的元素全部添加到map集合中
		
		System.out.println("集合中的元素:" + map);
	}
	
	// 删除方法
	@Test
	public void test2(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("汪峰", "章子怡");
		map.put("文章", "马伊琍");
		map.put("李晨", "范冰冰");
		
		// 根据键删除对应的值;如果键不存在,返回null;如果键存在,返回对应的值;
		System.out.println("删除的元素:" + map.remove("狗娃"));	// 删除的元素:null
		System.out.println("删除的元素:" + map.remove("李晨"));	// 删除的元素:范冰冰
		
		System.out.println("集合中的元素:" + map);
		
		map.clear();
		System.out.println("集合中的元素:" + map);
	}
 
	// 获取方法
	@Test
	public void test3(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("汪峰", "章子怡");
		map.put("文章", "马伊琍");
		map.put("李晨", "范冰冰");
		
		// 根据键获取对应的值;如果键不存在,返回null;
		System.out.println("获取到的元素:" + map.get("文章"));
		System.out.println("获取到的元素:" + map.get("邓超"));
		
		System.out.println("集合中元素的个数:" + map.size());
	}
 
	// 判断方法
	@Test
	public void test4(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("汪峰", "章子怡");
		map.put("文章", "马伊琍");
		map.put("李晨", "范冰冰");
		
		System.out.println("判断是否包含指定的键:" + map.containsKey("文章"));	// true
		System.out.println("判断是否包含指定的键:" + map.containsKey("渣男"));	// false
 
		System.out.println("判断是否包含指定的值:" + map.containsValue("范冰冰"));	// true
		System.out.println("判断是否包含指定的值:" + map.containsValue("冰冰"));	// false
		
		System.out.println("-------------");
		
		System.out.println("集合是否为空:" + map.isEmpty());	// false
		map.clear();	
		System.out.println("集合是否为空:" + map.isEmpty());	// true
		map.put(null, null);  // null也是一个元素;
		System.out.println("集合是否为空:" + map.isEmpty());	// false
	}
 
	// 迭代方法
	@Test
	public void test5(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("汪峰", "章子怡");
		map.put("文章", "马伊琍");
		map.put("李晨", "范冰冰");
		map.put("成龙", "林凤娇");
		
		// Map集合中遍历方式一:使用keySet()方法进行遍历;缺点:keySet()方法只是返回了所有键,没有值;
		Set<String> keys = map.keySet();
		Iterator<String> it = keys.iterator();
		while (it.hasNext()){
			String key = it.next();			// 获取键
			String value = map.get(key);	// 根据键获取值
			System.out.println(key + "---" + value);
		}
		
		System.out.println("----------------------");
		
		// Map集合的遍历方式二:使用values()方法进行遍历;缺点:values()方法只能返回所有的值,没有键;
		Collection<String> values = map.values();
		Iterator<String> ite = values.iterator();
		while (ite.hasNext()){
			String value = ite.next();		// 获取值
			System.out.println("值:" + value);
		}
 
		System.out.println("----------------------");
		
		// Map集合的遍历方式三:entrySet()方法遍历;
		Set<Entry<String, String>> entrySet = map.entrySet();
		Iterator<Entry<String, String>> iterator = entrySet.iterator();
		while (iterator.hasNext()){
			Entry<String, String> entry = iterator.next();
			String key = entry.getKey();		// 获取键
			String value = entry.getValue();	// 获取值
			System.out.println(key + "---" + value);
		}
	}
	
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值