如何更新map里的值Java java map更新_泛型

如何更新map里的值Java java map更新_泛型

图片截取自imooc

Map

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。

映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;

另一些映射实现则不保证顺序,如 HashMap 类。

HashMap

基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。

此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

put(K key, V value) 改和增 在此映射中关联指定值与指定键。

其泛型HashMap

K - 此映射所维护的键的类型

V - 所映射值的类型

package Y1_29;
import NormalClass.*;
import java.util.*;
//将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
//Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。
//映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;
//另一些映射实现则不保证顺序,如 HashMap 类。
//查get(Object key)注意key为键值不能是value 删remove(Object key)
//不太懂keySet() 可能是查,:返回此映射中包含的键的 Set 视图。
//HashMap
//基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。
//此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
//put(K key, V value) 改和增 在此映射中关联指定值与指定键。
//其泛型HashMap
//K - 此映射所维护的键的类型
//V - 所映射值的类型
public class MapTest {
public static void main(String[] args) {
MapTest mt = new MapTest();
Map map = new HashMap();
Student stu1 = new Student("WG","1512010015");
mt.testAdd(map, stu1,"001");
mt.testAdd(map, new Student("ZY","1512010016"),"002");
mt.testAdd(map, new Student("ZS","1512010017"),"003");
mt.testAdd(map, new Student("LS","1512010018"),"004");
mt.testShowAll(map);
//增删改查
mt.testShow(map, "002");
mt.testDelete(map, "001");
mt.testChange(map, "003", new Student("修改!","1512010017"));
mt.testShow(map, "002");
mt.testShowAll(map);
}
public void testAdd(Map map,Student stu,String key)
{
if(!map.containsKey(stu))
{
map.put(key, stu);
System.out.println("加入成功!");
Student temp = map.get(key);
System.out.println("姓名:" + temp.getName() + "学号:" + temp.getId());
}
else{
System.out.println("已经存在!");
}
}
//删除学生信息
public void testDelete(Map map,String id)
{
if(map.get(id) != null)
{
map.remove(id);
System.out.println("删除成功");
}
}
//修改学生信息用replace或者put
public void testChange(Map map,String id,Student stu)
{
if(map.get(id) != null)
{
map.replace(id, stu);
System.out.println("修改成功");
}
}
//查询一个Map中的一个元素
public void testShow(Map map,String key)
{
if(map.get(key) != null)
{
Student stu = map.get(key);
System.out.println("所查询结果 姓名:"+stu.getName() + "学号:"+stu.getId());
}
}
public void testShowAll(Map map)
{
//键值的Set集
Set set = map.keySet();
System.out.println("----------**学生信息表**-------------");
for (String str : set) {
System.out.println("姓名:" + map.get(str).getName() + "学号:" + map.get(str).getId());
}
}
}

其中Student是普通的Student类,可以自己构造。

如何更新map里的值Java java map更新_泛型