发表于: 2020-02-26 17:15:17
1 1186
今天完成的事情:
Map
1.Map简介
键值对的格式
程序开发大部分数据都是键值对形式的
2.<K,V>方法
增:
put(K k, V v);
存入一个键值对类型,K和V都要符合泛型约束
putAll(Map<? extends K, ? extends V> map);
存入另一个Map双边队列,并且要求添加的Map双边对接中的K和V都要和当前Map中存储
的K和V一致
删:
remove(Object k);
删除对应K的键(Key)值(Value)对
改:
put(K k, V v);
对应当前K存在,修改对应内容
查:
int size();
当前Map双边队列中,有效键值对个数
boolean isEmpty();
是否为空
boolean containsKey(Object key);
判断指定的Key是否存在
boolean containsValue(Object value);
判断指定Value是否存在
Set keySet();
返回整个Map双边队列中所有Key对应的Set集合
【注意】一个方法使用set结尾,表示该方法返回的是一个集合类型,大多是情况下都 是Set类型 Collectionvalues(); 返回整个Map双边队列中所有Value对应的Collection集合
【注意】方法名如果是一个复数,返回值类型集合或者是数组情况居多
3.EntrySet
Entry可以认为是键值对对象
格式:
class Entry<K, V> {
K k;
V v;
}
K,V是完全依赖于Map约束的,这里可以Entry里面保存的是每一个键值对类对象
Map中提供的方法:
Set<Entry<K, V>> entrySet
返回值是键值对类对象Set集合 Set集合中存储的是Entry类型 Entry类型是带有泛型的
实际代码:
HashMap<String, String> map = new HashMap<String, String>();
map.put("吴京", "谢楠");
map.put("邓超", "娘娘");
map.put("黄磊", "孙莉");
map.put("王宝强", "XX");
Set<Map.Entry<String, String>> entrySet = map.entrySet();
System.out.println(entrySet);
最后输出的是 map中的键值对。
4.TreeMap<K, V> 以及Comparable和Comparator
K是需要有对应的比较方式,如果没有比较方式,无法存入。
推荐使用Comparator接口
评论