Map集合的预习

Map集合

Map

Map(也称为字典、关联数组)是用于保存具有映射关系的数据,保存两组值,keyvalue,这两组值可以是任何应用类型的数据。
  Map的key不允许重复(底层Map的keySet()返回的是key的Set集合,所以key不会重复),即Map中对象的任意两个key通过equals()方法得到的都是false。而,Map的value值是可以重复的(Map的底层values()方法返回类型是Collection,可以存储重复元素),通过key总能找到唯一的value,Map中的key组成一个Set集合,所以可以通过keySet()方法返回所有key。Set底层也是通过Map实现的,只不过value都是null的Map来实现的。

Map实现类

Map典型的实现类是HashMap、Hashtable(HashMap子类还有LinkedHashMap)、SortedMap子接口及实现类TreeMap、WeakHashMap、IndentityHashMap等。
  Map有一个内部类Entry,该类封装了key-value对,有如下三个方法:

  • K getKey();:获取Entry中的key值;
  • V getValue();:获取Entry中的value值;
  • V setValue(V value);:设置Entry中的value值,并返回新设置的value值。
public class MapTest {
  public static void main(String[] args) {
      Map<String,String> map=new HashMap<>();
      map.put("2001", "张三");
      map.put("2002", "张三");
      map.put("2003", "李四");
    map.put("2003", "王五");//键重复,会覆盖上一个,留下最新的
      System.out.println(map);//{2003=王五, 2002=张三, 2001=张三}
  }
}//由上可知,map中的键是不能重复的,而值是可以重复的可以直接通过输出对象来得到
//集合的内容,说明此集合内重写了toString方法。


Map常用方法

  • int size();:返回Map的key-value对的长度。
  • boolean isEmpty();:判断该Map是否为空。
  • boolean containsKey(Object key);:判断该Map中是否包含指定的key。
  • boolean containsValue(Object value);:判断该Map是否包含一个或多个value。
  • V get(Object key);:获取某个key所对应的value;若不包含该key,则返回null。
  • V put(K key, V value);:向Map添加key-value对,当Map中有一个与该key相等的key-value对,则新的会去覆盖旧的。
  • V remove(Object key);:移除指定的key所对应的key-value对,若成功删除,则返回移除的value值。
  • void putAll(Map<? extends K, ? extends V> m);:将指定的Map中的key-value对全部复制到该Map中。
  • void clear();:清除Map中的所有key-value对。
  • Set<K> keySet();:获取该Map中所有key组成的Set集合。
  • Collection<V> values();:获取该Map中所有value组成的Collection。
  • Set<Map.Entry<K, V>> entrySet();:返回该Map中Entry类的Set集合。
  • boolean remove(Object key, Object value):删除指定的key-value对,若删除成功,则返回true;否则,返回false。

特点

1.Map集合的特点
java.util.Map<K,V>接口:集合,是一个双列集合

2.Map集合遍历的第一种方式
Map集合遍历的第一种方式:通过健查找值的方式
Map集合中有一个方法:keySet
Set keySet() 返回此映射中包含的键的 Set 视图。 把Map集合中的健存储到一个Set集合中
3.遍历Map集合的步骤:
1.定义一个Map集合,往集合中添加元素
2.调用Map集合中的方法keySet,把Map集合中的健存储到一个Set集合中
3.遍历Set集合,获取Map集合所有的健
4.通过获取到的健,使用Map集合的方法get查找值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值