1.映射的数学解释
设A、B是两个非空集合,如果存在一个法则f,使得对A中的每个元素a,按法则f,在B中有唯一确定的元素b与之对应,则称f为从A到B的映射,记作f:A→B。-------------------------------------------------------------
映射关系(两个集合):A集合和B集合.
A集合中的每一个元素都可以在B集合中找到唯一的一个值与之对应.
-------------------------------------------------------------
严格上说,Map并不是集合,而是两个集合之间的映射关系(Map接口并没有继承于Collection接口),然而因为Map可以存储数据(每次存储都应该存储A集合中以一个元素(key),B集合中一个元素(value)),我们还是习惯把Map也称之为集合.
-------------------------------------------------------------
因为:Map接口并没有继承于Collection接口也没有继承于Iterable接口,所以不能直接对Map使用for-each操作.
2.Map映射的方法
import java.util.HashMap;
import java.util.Map;
public class SetDemo6 {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("1", "张三");
map.put("2", "李四");
map.put("3", "王五");
map.put("4", "张三");
map.put("4", "张三");
System.out.println(map);//打印结果:{3=王五, 2=李四, 1=张三, 4=张三},key可以重复,value可以重复
}
}
3.遍历Map
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class SetDemo6 {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("1", "张三");
map.put("2", "李四");
map.put("3", "王五");
map.put("4", "张三");
map.put("4", "张三");
System.out.println(map);//打印结果:{3=王五, 2=李四, 1=张三, 4=张三},key可以重复,value可以重复
//1根据key遍历Map
Set<String> keySet = map.keySet();//获取Map中的key的集合
for (String key : keySet) { //遍历key集合
Object value = map.get(key);
System.out.println(key+"----->"+value);
}
System.out.println("-----------------------------------------------------------------");
//2.获取Map所有的Entry,然后通过Entry遍历Map
Set<Entry<String,Object>> entrySet = map.entrySet();//获取Map中的EntrySet集合
for (Entry<String, Object> entry : entrySet) { //遍历EntrySet集合
String key = entry.getKey();
Object value = entry.getValue();
System.out.println(key+"----->"+value);
}
}
}