package com.neu.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import com.neu.pojo.Student;
/**
*
* @author LNB
*说明:Map中方法的使用
*/
public class Map_Demo01 {
private static Map<String, Student> map=new HashMap<>();
private static Map map1=new HashMap<>();
/*
* 添加数据
* put(String key,Student value):实例化时指定泛型
* put(Object key,Object value):实例化时没有泛型,所有参数都为Object类型,意味着key与value可以说任意理想的参数值
*/
/*
* Map添加数据过程中如果key出现重复内容,以最后一次value进行覆盖
* put返回值为null原因:因为将key和value放到Map中,由于key在集合中不存在,所以key在集合中没有对应的value,返回为null
*/
public static void addKeyValue() {
Student stu1=map.put("stu_001", new Student(1,"小明",20,"大连"));
System.out.println("stu1:"+stu1);
Student stu2=map.put("stu_002", new Student(1,"小明",20,"大连"));
System.out.println("stu2:"+stu2);
map.put(null, null);
map.put("stu_003", null);
Student stu3=map.put("stu_003", new Student(3,"小3",20,"大连"));
System.out.println("stu3:"+stu3);
Student stu4=map.put("stu_003", new Student(3,"小3",18,"大连"));
System.out.println("stu4:"+stu4);
System.out.println("添加中map元素:"+map);
}
/*
* 删除功能
* remove(Object key):根据指定的key删除对应value,并返回value
* remove(Object key,Object value):根据指定的key与value完成元素的删除
* 删除成功返回true,否则返回false
*/
public static void deleteElement() {
Student stu=map.remove("stu_001");
System.out.println("删除stu1的key: "+stu);
System.out.println("删除后的Map:"+map);
boolean flag=map.remove("stu_002",new Student(1,"小明",20,"大连") );
System.out.println("删除结果:"+flag+" ,map: "+map);
}
/*
* 判断功能
* isEmpty():返回类型boolean,如果是空返回true,否则返回false
* containsKey(Object key):返回类型boolean,判断指定的key是否在集合中,如果存在返回true,赋值返回false
* containsValue(Object value):返回类型为boolean,判断指定的value是否在集合中,如果存在返回true,赋否则返回flase
*/
public static void panDuan() {
boolean flag=map.isEmpty();
System.out.println("是否为空:"+flag);
boolean flag1=map.containsKey("stu_002");
System.out.println("key是否存在:"+flag1);
boolean flag2=map.containsKey("stu_003");
System.out.println("key是否存在:"+flag2);
boolean flag3=map.containsValue(new Student(1,"小明",20,"大连"));
System.out.println("判断value是否存在:"+flag3);
boolean flag4=map.containsValue(null);
System.out.println("判断value是否存在:"+flag4);
}
/*
* 获取方法
* get(Object key):返回类型为Object,根据指定的key获取对应的value
*/
public static void getElement() {
Student stu=map.get("stu_001");
System.out.println("获取stu:"+stu);
}
/*
* 通过遍历方式获取value值
* keySet():返回java.util.Set,该集合中存放了Map中所有的key
*/
public static void getElementsByIterator() {
//需要先将Map转为单列
//通过keySet方法生成Set对象
Set<String> set= map.keySet();
String keys="";
Student values=null;
//通过Set对象生成Iterator对象
for(Iterator<String> ite=set.iterator();ite.hasNext();) {
keys=ite.next();
values=map.get(keys);
System.out.println("keys:"+keys+",values:"+values);
}
}
/*
* 通过entrySet()进行遍历
* Entry<Object key,Object value>:该实体是专门用来完成map集合键值对的封装
* 通常会设置在Set集合中
*/
public static void getElementsByEntrySet() {
Set<Entry<String, Student>> set= map.entrySet();
for(Iterator<Entry<String, Student>> ite=set.iterator();ite.hasNext();) {
Entry<String, Student> entry=ite.next();
String key=entry.getKey();
Student stu=entry.getValue();
System.out.println();
}
}
public static void main(String[] args) {
addKeyValue();
deleteElement();
panDuan();
getElement();
getElementsByIterator();
getElementsByEntrySet();
}
}
Map接口
最新推荐文章于 2022-10-24 10:30:00 发布