从概念上来说,map是一个集合,集合中的每个元素是一个键-值对,所谓键值对,英文是Key-Value,比如学生的身高当做key,身高的具体值就当做value。
map集合中,键和值是一一对应的,一个键只能对于一个值,但是不同的键可以有相同的值,这也好理解:我只有一个身高,但是和我一样身高的可以有很多人。
从语法上来说,map是一个接口,这个接口定义了满足它的概念的一组规则,hashmap则是该接口的一个实现类。
下面是hashmap的几个方法:
1.put(Key,Value);
将key value这个键值对加入集合。
返回值:
如果加入前集合中已经存在以key为键的键值对,则更新这个键值对的值为新加入的value,返回value。
否则,返回null
2.remove(key);
将以key为键的键值对移除。
返回值:
如果存在,返回被删除的value
否则,返回null
3.get(key);
获取key对应的value。
返回值:
如果存在以key为键的键值对,返回value
否则,返回null
4.boolean containsKey(key);
集合中是否包含key,存在返回true,否则返回false
下面是以上四个方法的测试代码,我分别定义四个静态方法分别测试put、 remove、get、containsKey,供和我一样的初学者参考。
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Main {
public static void main(String[] args) {
show01();
show02();
show03();
show04();
}
private static void show01(){
Map<String,String> map =new HashMap<>();
String v1 = map.put("李晨", "范冰冰1");//如果李晨不存在相应的Value,返回1
System.out.println(v1);
String v2 = map.put("李晨", "范冰冰2");//如果存在相应的Value,返回被替换的值
System.out.println(v2);
map.put("冷锋", "龙小云");
map.put("杨过", "小龙女");
map.put("尹志平", "小龙女");
System.out.println(map);//重写了toString方法
}
private static void show02(){
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志颖",178);
System.out.println(map);
Integer v1 = map.remove("林志颖");//存在,返回被删除的值,不存在返回null
System.out.println(v1);
System.out.println(map);
Integer v2 = map.remove("林志玲");//存在,返回被删除的值,不存在返回null
System.out.println(v2);
System.out.println(map);
}
private static void show03(){
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志颖",178);
System.out.println(map);
Integer height = map.get("赵丽颖");
System.out.println(height);
System.out.println(map);
Integer height2=map.get("赵丽颖");
System.out.println(height2);
System.out.println(map);
Integer height3 = map.get("隔壁老王");
System.out.println(height3);
System.out.println(map);
}
private static void show04(){
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志颖",178);
System.out.println(map);
boolean b = map.containsKey("赵丽颖");
System.out.println(b);
boolean bb = map.containsKey("迪丽热巴");
System.out.println(bb);
}
}