Map接口只介绍常用的hashMap子类
Map 以key-value的形式存储数据
import java.util.Collection;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
// 需要分别指定key和value的类型
HashMap<String, Integer> hm1 = new HashMap<String,Integer>();
// put 添加数据 key必须有唯一性,不能重复,value 没有限制
hm1.put("张三", 80);
hm1.put("李四", 0);
// 通过key获取value的值
int s1 = hm1.get("张三");
int s2 = hm1.get("李四");
System.out.println(s1+"===="+s2);
// 如果key有值 会替换原来的值
hm1.put("张三", 50);
int s3 = hm1.get("张三");
System.out.println(s3);
// 如果没有值 取出来是一个null的对象
// 分两步
// Integer temp = hm1.get("王五");// temp = null
// int s4 = temp.intValue();// 产生空指针异常
// int s4 = hm1.get("王五");
// System.out.println(s4);
// 写引用类型 防止程序崩溃
Integer s5 = hm1.get("王五");
System.out.println(s5);
// 集合获取基本类型,需要获取对应的引用类型,然后进行不为null的判断在进行基本类型的转换
// HashMap的遍历:
// 1.遍历所有的key
// 2.遍历所有的value
// 3.遍历所有的key-value
// 1.遍历所有的key,返回值是Set
Set<String> keSet = hm1.keySet();
for (String string : keSet) {
System.out.println(string);
}
// 2.遍历所有的value
Collection<Integer> list = hm1.values();
for (Integer integer : list) {
System.out.println(integer);
}
// 遍历key-value Set<Entry<K, V>> 固定格式 修改泛型
Set<Entry<String, Integer>> entries = hm1.entrySet();
System.out.println(hm1.toString());
for (Entry<String, Integer> entry : entries) {
String key = entry.getKey(); // 获取key
Integer value = entry.getValue(); // 获取value
System.out.println(key + "=" + value);
}
}
}