1005--Java集合--Map接口

来源:互联网 发布:origin导入excel数据 编辑:程序博客网 时间:2024/04/29 23:33
--MapCollection并列存在。用于保存具有映射关系的数据:Key-Value
--Map 中的 key和 value都可以是任何引用类型的数据
--Map 中的 keySet来存放,不允许重复
  即同一个 Map 对象所对应的类,须重写hashCode()equals()方法。
--常用String类作为Map的“键”。
--key value之间存在单向一对一关系,
   即通过指定的 key 总能找到唯一的确定的value
 
 
--添加、删除操作:
  Ø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()
  Øboolean equals(Object obj)
 
Map实现类之一:HashMap
--Map接口的常用实现类:HashMapTreeMapProperties
--HashMapMap 接口使用频率最高的实现类。
--允许使用null键和null值,与HashSet一样,不保证映射的顺序。
--HashMap判断两个 key 相等的标准是:两个key通过equals()方法返回truehashCode值也相等。
--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
--LinkedHashMapHashMap的子类
--与LinkedHashSet类似LinkedHashMap可以维护Map的迭代顺序:
  迭代顺序与 Key-Value对的插入顺序一致
 
Map实现类之三:TreeMap
--TreeMap存储 Key-Value 时,需要根据key-value对进行排序。
  TreeMap可以保证所有的 Key-Value 对处于有序状态。
--TreeMapKey 的排序:
  Ø自然排序TreeMap的所有的Key必须实现 Comparable接口,
     而且所有的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException
  Ø定制排序:创建 TreeMap时,传入一个 Comparator对象,该对象负责对TreeMap中的所有key进行排序。
    此时不需要 Map Key 实现Comparable接口
--TreeMap判断两个key相等的标准
    两个key通过compareTo()方法或者compare()方法返回0
--若使用自定义类作为TreeMapkey
   所属类需要重写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的子类,该对象用于处理属性文件
--由于属性文件里的 keyvalue都是字符串类型,
   所以 Properties里的keyvalue都是字符串类型
--存取数据时,建议使用setProperty(Stringkey,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);
 
0 0
原创粉丝点击