集合——Map
Map家族
实现类:
- HashMap
- LinkedHashMap
- Hashtable
- ConcurrentHashMap
- TreeMap
- Properties
1.HashMap
1.1 使用方法
代码实现:
package com.study.hashmap;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class Test01 {
public static void main(String[] args) {
//HashMap key是唯一的,value可以重复
HashMap<String, Integer> map1 = new HashMap<String, Integer>();
//添加元素
map1.put("Tom", 18);
map1.put("Jack", 19);
map1.put("Timy", 21);
map1.put("Marray", 20);
//清空集合
//map1.clear();
System.out.println("判断集合中是否包含某个key:"+map1.containsKey("Jack"));
System.out.println("判断集合中是否包含某个values:"+map1.containsValue(19));
System.out.println("----------------------");
//通过key获取value
System.out.println("通过key获取value:"+map1.get("Tom"));
System.out.println("通过key获取value:"+map1.getOrDefault("小白",20));
System.out.println("----------------------");
System.out.println("判断集合中是否为空:"+map1.isEmpty());
System.out.println("----------------------");
HashMap<String,Integer> newMap1 = new HashMap<>();
newMap1.put("aaa", 10);
newMap1.put("bbb", 20);
newMap1.put("ccc", 30);
//将新集合中所有的元素添加到map集合中
map1.putAll(newMap1);
//添加元素,如果有key,则返回在集合中的value
//如果没有key,则添加key——value
Integer putIfAbsent = map1.putIfAbsent("Tom", 24);
System.out.println(putIfAbsent);
System.out.println("----------------------");
//删除
map1.remove("aaa");//通过key删除映射关系
map1.remove("bbb",20);//通过key+value删除映射关系
//替换
//map1.replace("ccc", 30,25);
//添加元素,如果有相同key,就替换value,并返回
Integer put = map1.put("ccc", 25);
System.out.println("返回替换前的value值:" + put);
System.out.println("----------------------");
//获取映射数
System.out.println("key-value的映射数:"+map1.size());
System.out.println("----------------------");
//获取所有的key
Set<String> keySet = map1.keySet();
for (String key : keySet) {
System.out.println(key);
}
System.out.println("----------------------");
//获取所有的values
Collection<Integer> values = map1.values();
for (Integer value : values) {
System.out.println(value);
}
System.out.println("----------------------");
//遍历——keySet
Set<String> keySet2 = map1.keySet();
for (String key2 : keySet2) {
Integer values2 = map1.get(key2);
System.out.println(key2+"--"+values2);
}
System.out.println("----------------------");
//遍历——Entry
//把HashMap中所有的映射关系(Entry)抽取出存放在Set集合中,遍历Set集合依次取出映射关系(Entry),
//就能获取映射关系中的key和value
Set<Entry<String,Integer