Java Map的使用笔记

Java中map是存储键和值的映射关系

添加键值测试

方法原型:V put(K key, V value)

public class MapDemo {
	public static void main(String args[]) {
		Map<String,String> map1 = new HashMap<>();
		map1.put("学生1", "23岁");
		map1.put("学生2", "20岁");
		map1.put("学生3", "28岁");
		System.out.println(map1);
	}
}

运行:
在这里插入图片描述
输出的顺序不是我们存的顺序,因为用的HashMap创建的map对象,底层用哈希算法实现。将HashMap改为LinkedHashMap即可按存的顺序输出。这个暂时不关注,我们来看put方法的返回值,它可不是返回传入的value,而是返回刚传入键值所覆盖掉的value。
我们试试接收下put方法的返回值

public class MapDemo {
	public static void main(String args[]) {
		Map<String,String> map1 = new HashMap<>();
		String str = map1.put("学生1", "23岁");
		String str2 =map1.put("学生2", "20岁");
		String str3 =map1.put("学生3", "28岁");
		System.out.println(str);
		System.out.println(str2);
		System.out.println(str3);
	}
}

运行:
在这里插入图片描述
返回null,因为被覆盖的是null,如果map1中已有”学生1”键和值,再用put放入”学生1”键和新值呢?

public class MapDemo {
	public static void main(String args[]) {
		Map<String,String> map1 = new HashMap<>();
		map1.put("学生1", "100岁");
		String str = map1.put("学生1", "23岁");
		String str2 =map1.put("学生2", "20岁");
		String str3 =map1.put("学生3", "28岁");
		System.out.println(str);
		System.out.println(str2);
		System.out.println(str3);
	}
}

在这里插入图片描述
可见的确覆盖的值被返回了。

根据键移除元素测试

方法原型:V remove(Object key)

public class MapDemo {
	public static void main(String args[]) {
		Map<String,String> map1 = new HashMap<>();
		map1.put("学生1", "23岁");
		map1.put("学生2", "20岁");
		map1.put("学生3", "28岁");
		String str = map1.remove("学生3");
		System.out.println(map1+" "+ str);
	}
}

运行:
在这里插入图片描述
返回了被移除元素里的值。

得到所有映射,遍历Map。

方法原型:Set<Map.Entry<K,V>> entrySet()

Map.Entry是Map接口的内部接口。entrySet()方法是将映射关系里的键与值看作一个整体,即Entry对象,然后将所有Entry对象存入Set里

public class MapDemo {
	public static void main(String args[]) {
		Map<String,String> map1 = new HashMap<>();
		map1.put("学生1", "23岁");
		map1.put("学生2", "20岁");
		map1.put("学生3", "28岁");
		
		Set<Map.Entry<String,String>> mapEntry = map1.entrySet();
		for(Map.Entry<String,String> temp: mapEntry) {
			System.out.println(temp.getKey()+"-"+temp.getValue());
		}
	}
}

运行:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值