Map接口和常用方法以及对HashMap的总结
Map接口和常用方法
Map接口实现类的特点(jdk1.8)
(1)Map与Collection并列存在,用于保存具有映射关系的数据:Key-Value
(2)Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中
(3)Map中的key不允许重复,原因和HashSet一样
(4)Map中的value可以重复
(5)Map中的key可以为null,value也可以为null,注意key为null,只能有一个;value为null,可以有
多个
(6)常用String类作为Map的key
(7)key和value之间存在单向一对一关系,即通过指定的key总能找到对应的value
代码演示
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings({"all"})
public class Map_ {
public static void main(String[] args) {
Map map = new HashMap();
map.put("no1", "周小末");//k-v
map.put("no2", "张无忌");//k-v
map.put("no1", "张三丰");//当有相同的 k , 就等价于替换. map.put("no3", "张三丰");//k-v
map.put(null, null); //k-v
map.put(null, "abc"); //等价替换
map.put("no4", null); //k-v
map.put("no5", null); //k-v
map.put(1, "赵敏");//k-v
map.put(new Object(), "金毛狮王");//k-v
// 通过 get 方法,传入 key ,会返回对应的 value
System.out.println(map.get("no2"));//张无忌
System.out.println("map=" + map);
}
}
(8)Map存放数据的key-value,一对key-value是放在一个HashMap$Node中的,因为Node实现了
Entry接口
Map接口常用方法
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings({"all"})
public class MapMethod {
public static void main(String[] args) {
//演示 map 接口常用方法
Map map = new HashMap();
map.put("邓超", new Book("", 100));//OK
map.put("邓超", "孙俪");//替换
map.put("王宝强", "马蓉");//OK
map.put("宋喆", "马蓉");//OK
map.put("刘令博", null);//OK
map.put(null, "刘亦菲");//OK
map.put("鹿晗", "关晓彤");//OK
map.put("hsp", "hsp 的老婆");
System.out.println("map=" + map);
// remove:根据键删除映射关系
map.remove(null);
System.out.println("map=" + map);
// get:根据键获取值
Object val = map.get("鹿晗");
System.out.println("val=" + val);
// size:获取元素个数
System.out.println("k-v=" + map.size());
// isEmpty:判断个数是否为 0
System.out.println(map.isEmpty());//F
// clear:清除 k-v
//map.clear();
System.out.println("map=" + map);
// containsKey:查找键是否存在
System.out.println("结果=" + map.containsKey("hsp"));//T
}
}
class Book {
private String name;
private int num;
public Book(String name, int num) {
this.name = name;
this.num = num;
}
}
Map接口遍历方法
(1)containsKey:查找键是否存在
(2)KeySet:获取所有的键
(3)entrySet:获取所有关系k-v
(4)values:获取所有的值
HashMap总结
(1)Map接口的常用实现类:HashMap、Hashtable和Properties
(2)HashMap是Map接口使用频率最高的实现类
(3)HashMap是以key-value对的方式来存储数据(HashMap$Node类型)
(4)key不能重复,但是值可以重复,允许使用null键和null值
(5)如果添加相同的key,则会覆盖原来的key-value,等同于修改(key不会替换,value会替换)
(6)与HashSet一样,不保证映射的顺序,因为底层是以hash表的方式来存储的
(7)HashMap没有实现同步,因此线程是不安全的,方法没有做同步互斥的操作,没有synchronized
- 点赞
- 收藏
- 关注作者
评论(0)