Map

哈希表的常规操作和遍历

Java的SE系列 第15天上午

		package mapDemo;

		import java.util.Collection;
		import java.util.HashMap;
		import java.util.Map;
		import java.util.Map.Entry;
		import java.util.Set;
		
		/**
		 * java.util.Map又叫查找表
		 * Map体现的结构是一个多行两列的表格
		 * 
		 * 左列成为key,右列称为value
		 * Map可以通过key获取对应的value,所以我们经常将要查询数据作为value,
		 * 查询的条件作为key将他们成对的保存到Map中
		 * 
		 * Map是一个接口,常用的实现类:java.util.HashMap
		 * 
		 * HashMap又称为哈希表,散列表,使用散列表算法实现的Map,
		 * 是当今查询速度最快的数据结构
		 * @author Administrator
		 */
			public class MapDemo1 {
				public static void main(String[] args) {
					/*
					 * Map需要分别指定key与value的类型
					 * 若加载了HashMap还报错的话,将Java Complier编译器改为1.8版本
					 */
					Map<String,Integer> map = new HashMap<>();
			//		HashMap<String, Integer> map = new HashMap<>();
					//利用多态的思想向上造型
					
					/* 
					 * 1:赋值
					 * V put(K k,V v)
					 * 将给定的key-value对保存到Map中,Map有一个要求:
					 * key不允许重复。因此使用已有的key保存value时,put方法
					 * 会将该key原来的value返回,并用新value替换。
					 */
					map.put("语文", 99);
					map.put("数学", 100);
					map.put("英语", 60);
					System.out.println(map);
					//使用已有的key则是替换value操作
					map.put("语文",59);
					System.out.println(map);
					
					/*
					 * 2:取值
					 * V get(Object key)
					 * 根据给定的key获取对应的value,若给定的
					 * key在Map中不存在,则返回值为null;
					 */
					
					Integer value = map.get("历史");
					System.out.println(value);
					
					int size = map.size();
					System.out.println(size);
					
					/*
					 * 3:删除
					 * V remove(Object key)
					 * 删除当前Map中给定的key所对应的key所对应的这组键值对
					 * 返回值为这个key对应的value
					 */
					Integer old = map.remove("语文");
					System.out.println(map);
					System.out.println(old);
					
					/*
					 * 4:判断
					 * 判断当前Map是否包含给定的key或value
					 */
					boolean ck = map.containsKey("数学");
					boolean cv = map.containsValue(100);
					System.out.println(ck);
					System.out.println(cv);
					
					//5:遍历
					System.out.println("-----遍历key-----");
					/*
					 * 遍历key
					 * Set keyset()
					 * 将当前Map中所有key以一个Set集合形式返回
					 */
					Set<String> keyset = map.keySet();
					for(String key :keyset) {
						System.out.println("key值:"+key);
					}
					
					System.out.println("-----遍历键值对-----");
					/*
					 * 遍历每组键值对
					 * Set entrySet()
					 * 将当前Map中每组键值对以若干Entry实例并存入Set集合进行返回
					 * java.util.Map.Entry
					 */
					Set<Entry<String, Integer>> entrySet = map.entrySet();
					System.out.println("key:value");
					for (Entry<String, Integer> e : entrySet) {
						String k = e.getKey();
						Integer v = e.getValue();
						System.out.println(k+":"+v);
					}
					
					System.out.println("-----遍历value-----");
					/*
					 * Collection values()
					 * 将当前Map中所有的value以一个集合形式返回
					 */
					Collection<Integer> values = map.values();
					for (Integer i : values) {
						System.out.println("value:"+i);
					}
				}
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值