map中的方法(一)

来源:互联网 发布:魔镜数据准确吗 编辑:程序博客网 时间:2024/06/15 00:53

1.Map集合:该集合存储键值对,一对一对往里面存,而且保证键的唯一性

Hashtable :底层是哈希表数据结构,不可以存入null 键null值,给集合是线程同步的,jdk1.0 效率低、

HashMap:   底层是哈希表数据结构。允许null键和null值。给集合是不同步的 jdk1.2效率高

TreeMap:   底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序;

/**和Set很像其实 Set底层就是用的Map集合。*/


2.containsKey与get方法区别总结

Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有三种情况,一种是在集合中没有该键对象;另一种是该键对象没有映射任何值对象,即值对象为null;第三种是该键有隐身的值,而这个值是“null”。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断;由于containsKey()返回的值是boolean型的,若Map的Key值有对应的Value值,则返回true,否则返回false。

eg:

import java.util.HashMap;
import java.util.Map;
public class TestMap {
public static void main(String[] args) {
Map<String,String> map=new HashMap<String,String>();

map.put("001", null);
map.put("002", "null");
map.put("003", "DoTo");
System.out.println(map.get("001"));  //输出结果:null
System.out.println(map.get("002"));   //输出结果:null
System.out.println(map.get("003"));   //输出结果:DoTo
System.out.println(map.get("004"));  //输出结果:null

System.out.println(map.containsKey("001"));   //输出结果:  true
System.out.println(map.containsKey("002"));  //输出结果:   true
System.out.println(map.containsKey("003"));  //输出结果:   true
System.out.println(map.containsKey("004"));  //输出结果:   false
}
}

3.添加

put(K key ,V value)

putAll(Map<? extends k,? extends v> m);

4.删除

clear()

remove(Object key)

5.判断:(return:boolean)

containsValue(Object value)

containsKey(Object key)

6.通过key获取value

get(Object key)

7. boolean isEmpty();  

8.Map中所具有键值对总数:

size()

 boolean equals(Object o);

 int hashCode();

 Set<K> keySet();

 Collection<V> values();

Set<Map.Entry<K, V>> entrySet();

keySet()

 interface Entry<K,V>{K getKey();V getValue();V setValue(V value);boolean equals(Object o);int hashCode();}