模型:
把搜索的关键字叫key把key对应的值为value,有两种模型纯key模型和key-value模型。
纯key模型:如在英语词典中找到单词。(Set存储的就是纯key模型);
key-value模型:如梁山好汉的绰号。(Map存储的就是key-value模型);

Set继承了Collection接口Map没有Set可以用迭代遍历而Map不可以,但是可以把Map转化为可以用迭代器遍历的集合。
Set中的元素不可重复,所以Set最大的功能就是对集合元素进行去重。
Map<K,V>的方法
V get(Object key) 返回key对应的value值
V getOrDefault(Object key,V defaultvlue) 返回key对应的value值,若不存在返回默认值
V put(K key,V value) 设置key对应的value值
V remove(Object key) 删除key对应的映射关系
Set<K> keySet() 返回所有key的不重复集合
Collection<V> values() 返回所有value的可重复集合
Set<Map.Entry<K,V>> entrySet() 返回所有key-value的映射关系
boolean cantainsKey(Object key) 判断是否包含key
boolean containsValue(Object value) 判断是否包含value
Set<E>的方法
boolean add(E e) 添加元素,不添加重复元素
void clear() 清空集合
boolean contains(Object o) 判断o是否在集合中
Iterator<E> iterator() 返回迭代器
boolean remove(Object o) 删除集合中的o
int size() 返回Set中元素的个数
boolean isEmpty() 检测Set是否为空,若是返回true,若不是返回false
Object[] toArray() 将Set中的元素转换为数组返回
boolean containsAll(Collection<?> c) 集合c中的元素是否在Set中全存在,是返回true,否返回false;
boolean addAll(Collection<? extends E> c) 将集合c中的元素添加到Set中去,以去重。