Java的Map接口

前言

温习并记录最近学的Map集合,同时也希望可以帮到大家(如果哪里记录的不正确,请各位批评指正)

HashMap

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapTest {
	
			// Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的Key
			// 另外一组用于保存Map里的Value,Map中的key和value 都可以是任何引用类型的数据
			// Map中的Key不允许重复,即同一个Map对象的任何两个Key通过equals方法比较中返回false
			// Key和Value之间存在单向一对一关系,即通过指定的,Key总能找到唯一的, 确定的Value.
			// HashMap是线程不安全的
	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<String, Integer>();
		// 添加数据
		map.put("a", 1);
		map.put("b", 2);
		map.put("c", 3);
		System.out.println(map);
		System.out.println(map.get("a")); // 根据key取值
		// 移除键值对
		map.remove("c");
		System.out.println(map);
		// map集合长度
		System.out.println(map.size());
		
		// 判断当前集合是否有指定的key,输出false或true
		System.out.println(map.containsKey("a"));
		
		// 判断当前集合是否有指定的key,输出false或true
		System.out.println(map.containsValue(2));
		
		// 清空集合 map.clear();
//		map.clear(); 
		
		System.out.println(map.keySet()); // 获取map集合中所有key的集合
		System.out.println(map.values()); // 获取map集合中所有values的值
		
		// 遍历map集合,通过map.keySet();
		Set<String> keys = map.keySet();
		System.out.println("通过map.keySet()遍历:");
		for (String key : keys) {
			System.out.println("key:" + key + " values:" + map.get(key));
		}
		
		// 通过map.entrySet()来遍历
		Set<Entry<String, Integer>> entrys = map.entrySet();
		System.out.println("通过map.entrySet()遍历:");
		for (Entry<String, Integer> en : entrys) {
			System.out.println("key:" + en.getKey() + " values:" + en.getValue());
		}
	}

}

TreeMap

import java.util.*;
public class TreeMap {
	/*
	 * TreeMap存储Key-Value对时,需要根据Key对key-value对进行排序。
	 * TreeMap 可以保证所有的Key-Value都处于有序状态。
	 * 
	 * TreeMap的Key的排序:
	 * ●自然排序: TreeMap的所有的Key必须实现Comparable接口,
	 * 而且所有的Key应该是同-个类的对象,否则将会抛出ClasssCastException
	 * 
	 * ●定制排序(了解) :创建TreeMap.时,传入一个Comparator对象,
	 * 该对象负责对TreeMap中的所有key进行排序。此时不需要Map的Key实现Comparable接口
	 */
	
	public static void main(String[] args) {
		
		// Treemap自然排序是字典排序
		Map<Integer, String> map = new TreeMap<Integer, String>();
		map.put(4, "a");
		map.put(3, "a");
		map.put(2, "a");
		map.put(1, "a");
		// key不可设置为空
		map.put(null, "a"); // 编译成功,运行异常!!!
		System.out.println(map); // 输出1=a,2=a,3=a,4=a
		
		Map<String, String> map1 = new TreeMap<String, String>();
		map1.put("b", "b");
		map1.put("c", "c");
		map1.put("d", "d");
		map1.put("ab", "ab");
		map1.put("1", "ab");
		map1.put("10", "ab");
		System.out.println("map1"); // 输出1=ab,10=ab,a=a,ab=ab,b=b,c=c,d=d
	
		
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值