Map类
Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。
类似于php中:
$array = array(
"nihao" =>"shide",
"tahao"=>"yeshide",
"dajiahao"=>"doutinghao"
);
方法
方法名称 | 方法说明 |
---|---|
V get(Object key) | 返回 Map 集合中指定键对象所对应的值。V 表示值的数据类型 |
V put(K key, V value) | 向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null |
v remove(Object key) | 从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如 果没有,则返回null |
Set entrySet() | 返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据 类型为 Map.Entry |
Set keySet() | 返回 Map 集合中所有键对象的 Set 集合 |
- 类
-
HashMap :按哈希算法来存取键对象
最常用的Map,它根据键的HashCode (“散列码”)值存储数据,根据键可以直接获取它的值,具有很快的访问速度。 “散列码”是“相对唯一”用以代表对象的int值,它是通过将该对象的某些信息进行转换而生成的。 所有Java对象都 能产生散列码,因为hashCode()是定义在基类Object中的方法。 HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。
子类
-
LinkedHashMap
保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用 LinkedHashMap。
-
-
TreeMap
能够把它保存的记录根据键(key)排序, 默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。 TreeMap不允许key的值为null。非同步的。
-
@Test
public void mapTest(){
Map<String,String> map = new HashMap<String, String>();
map.put("1","value1");//存值
map.put("2","value2");
map.put("3","value3");
map.put("4","value4");
map.put("5","value5");
map.put("6","value6");
map.put("7","value7");
//查看是否存在某个健值
System.out.println(map.containsKey("6"));//TRUE
//是否存在某个值
System.out.println(map.containsValue("value6"));//true
//获取值
System.out.println(map.get("1"));//value1
//获取map 长度
System.out.println(map.size()); //7
//删除
map.remove("7");
System.out.println(map.size()); //6
//获取所有key值
System.out.println(map.keySet());//[1, 2, 3, 4, 5, 6]
//获取所有value值
System.out.println(map.values());//[value1, value2, value3, value4, value5, value6]
/*
循环打印
*/
System.out.println("使用keySet+get");
for (String key: map.keySet()){
System.out.println("key="+key+" and value = "+map.get(key));
}
System.out.println("使用value");
for (String v:map.values()){
System.out.println("value = "+v);
}
System.out.println("使用entrySet");
for (Map.Entry<String,String > entry:map.entrySet()){
System.out.println("key = "+entry.getKey()+" ,value="+entry.getValue());
}
//使用迭代器
System.out.println("迭代器:iterator ");
Iterator<Map.Entry<String,String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<String, String> entry = iterator.next();
System.out.println(entry.getKey() + " :" + entry.getValue());
}
/*
使用keySet+get
key=1 and value = value1
key=2 and value = value2
key=3 and value = value3
key=4 and value = value4
key=5 and value = value5
key=6 and value = value6
使用value
value = value1
value = value2
value = value3
value = value4
value = value5
value = value6
使用entrySet
key = 1 ,value=value1
key = 2 ,value=value2
key = 3 ,value=value3
key = 4 ,value=value4
key = 5 ,value=value5
key = 6 ,value=value6
迭代器:iterator
1 :value1
2 :value2
3 :value3
4 :value4
5 :value5
6 :value6
*/
}