概述
此类提供了Map接口的基本实现,以最大程度地减少实现此接口所需的工作。要实现不可修改的Map,程序员只需扩展此类并为entrySet方法提供实现,该方法将返回Map映射的set-view。通常,返回的set将依次在AbstractSet之上实现。该集合不支持add或remove方法,并且其迭代器不支持remove方法。要实现可修改的map,程序员必须另外重写此类的 put 方法(否则将抛出UnsupportedOperationException)并由entrySet().iterator() 必须另外实现其remove方法。根据 Map 接口规范中的建议,程序员通常应提供一个void(无参数)构造器和map构造函数。根据 Map 接口规范中的建议,程序员通常应提供一个void(无参数)构造器和map构造函数。此类中每个非抽象方法的文档详细描述了其实现。如果要实现的map允许更有效的实现,则可以重写这些方法。
继承关系
public abstract class AbstractMap<K,V> implements Map<K,V>
实现了Map接口
成员属性
构造器
唯一的构造函数。用于子类构造函数的调用,通常是隐式的。
protected AbstractMap() {}
关键方法
size()
list的大小
public int size() {
return entrySet().size();
}
isEmpty()
判断是否为空
public boolean isEmpty() {
return size() == 0;
}
containsValue()
判断是否包含了某个value
public boolean containsValue(Object value)
containsKey()
判断是否包含了某个key
public boolean containsKey(Object key)
get()
根据key获取value
public V get(Object key)
put()
添加一个元素,返回value
public V put(K key, V value) {
throw new UnsupportedOperationException();
}
remove()
删除所有元素
public V remove(Object key)
putAll()
把一个Map的所有元素存入当前对象
public void putAll(Map<? extends K, ? extends V> m)
clear()
清除所有元素
public void clear() {
entrySet().clear();
}
keySet()
返回key的集合
public Set<K> keySet()
values()
返回value的集合
public Collection<V> values()
Set()
返回entrySet()
public abstract Set<Entry<K,V>> entrySet();
equals()
判断两个Map是否相等。 要么是同一个Map,要么是不同的Map,但是元素完全相同。
public boolean equals(Object o)
希望和大家多多交流
我16年毕业以后,做的是前端,目前打算深入学习java开发。内容有任何问题,欢迎各位小伙伴们指正,也希望小伙伴们给我点赞和关注,给我留言,一起交流讨论,共同进步。