1005--Java集合--Map接口

--Map Collection 并列存在。用于保存具有 映射关系 的数据 :Key-Value
--Map 中的 key 和  value 都可以是任何引用类型的数据
--Map 中的 key Set 来存放, 不允许重复
  即同一个 Map 对象所对应的类,须重写 hashCode () equals() 方法。
--常用 String 类作为 Map 的“键”。
--key value 之间存在单向一对一关系,
   即通过指定的 key 总能找到唯一的 确定的 v alue
 
 
--添加、删除操作:
  Ø Object put(Object key,Object value)
  Ø Object remove(Object key)
  Ø void putAll (Map t)
  Ø void clear()
 
--元视图操作的方法:
  Ø Set keySet ()
  Ø Collection values()
  Ø Set entrySet ()
 
--元素查询的操作:
  Ø Object get(Object key)
  Ø boolean containsKey (Object key)
  Ø boolean containsValue (Object value)
  Ø int size()
  Ø boolean isEmpty ()
  Ø b oolean equals(Object obj )
 
Map实现类之一:HashMap
--Map 接口的常用实现类: HashMap TreeMap Properties
--HashMap Map 接口 使用频率最高 的实现类。
--允许使用 null 键和 null 值,与 HashSet 一样,不保证映射的顺序。
--HashMap 判断两个 key 相等的标准 是:两个 key 通过 equals() 方法返回 true hashCode 值也相等。
--HashMap 判断两个 value 相等的标准 是:两个 value 通过 equals() 方法返回 true
 
 /*
  * Object put(Object key,Object value):向Map中添加一个元素
  * Object remove(Object key):按照指定的key删除此key-value
  * void putAll(Map t)
  * void clear():清空 
  * Object get(Object key):获取指定key的value值。若无此key,则返回null
  * boolean containsKey(Object  key)
  * boolean containsValue(Object value)
  * int size():返回集合的长度 boolean
  * isEmpty() boolean equals(Object obj)
  *
  * HashMap: 1.key是用Set来存放的,不可重复。value是用Collection来存放的,可重复
  * 一个key-value对,是一个Entry。所有的Entry是用Set存放的,也是不可重复的。
  * 2.向HashMap中添加元素时,会调用key所在类的equals()方法,判断两个key是否相同。若相同 则只能添加进后添加的那个元素。
  * 此处跟HashSet不同, HashSet是后面的添加不进去
  */
 
HashMap的遍历
--Key遍历
  Set set = hashMap. keySet();
--Values遍历
   Collection coll = hashMap. values();
--Key-Value遍历(entry遍历)
  Set set = hashMap.entrySet();
  for(Object obj :set) {
      Map.Entry entry = (Map.Entry)obj;
      entry. getKey();
      entry. getValue(); 
  }
 
Map实现类之二:LinkedHashMap
--LinkedHashMap HashMap 的子类
--与 LinkedHashSet 类似 LinkedHashMap 可以维护 Map 的迭代顺序:
  迭代顺序与 Key- V alue 对的插入顺序一致
 
Map实现类之三:TreeMap
--TreeMap 存储 Key-Value 时, 需要根据 key-value 对进行排序。
   TreeMap 可以保证所有的 Key-Value 对处于有序状态。
--TreeMap Key 的排序:
  Ø 自然排序 TreeMap 的所有的 Key 必须实现 Comparable 接口,
     而且所有的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException
  Ø 定制排序 :创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对 TreeMap 中的所有 key 进行排序。
    此时不需要 Map Key 实现 Comparable 接口
--TreeMap 判断 两个 key 相等的标准
    两个 key 通过 compareTo () 方法或者 compare() 方法返回 0
--若使用自定义类作为 TreeMap key
   所属类需要重写 equals() hashCode () 方法,且 equals() 方法返回 true 时, compareTo () 方法应返回 0
 
Map实现类之四:Hashtable
--Hashtable 是个 古老的 Map 实现类 线程安全
--与 HashMap 不同, Hashtable 不允许使用 null 作为 key value
--与 HashMap 一样, Hashtable 也不能保证其中 Key-Value 对的顺序
--Hashtable 判断两个 key 相等、两个 value 相等的标准,与 hashMap 一致。
 
Map实现类之五:Properties
--Properties 类是 Hashtable 的子类,该对象用于处理属性文件
--由于属性文件里的 key value 都是字符串类型,
   所以 Properties 里的 key value 都是字符串类型
--存取数据时,建议使用 setProperty (String key,String value) 方法和 getProperty (String key) 方法
•Properties pros = new Properties();
•pros.load(newFileInputStream(new File("jdbc.properties")));
•String user = pros.getProperty("user");
•System.out.println(user);
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值