package collection;
import com.sun.xml.internal.bind.v2.model.core.ID;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
/**
* @author ChristinaXinny
* @create 2021-09-30 1:02 下午
*/
public class MapTest {
public Map<String, Student>stuMap;
public MapTest() {
this.stuMap = new HashMap<>();
}
//input
public void testPut(){
Scanner in = new Scanner(System.in);
int i=0;
while (i<3){
System.out.println("input id:");
String id = in.next();
Student oldStu = stuMap.get(id);
if (oldStu == null){
System.out.println("input name:");
String name = in.next();
Student newStu = new Student(id, name);
stuMap.put(id,newStu);
System.out.println("input success");
i++;
}
else {
System.out.println("already have this student");
continue;
}
}
}
//删除
public void testRemove(){
Scanner in = new Scanner(System.in);
while (true){
System.out.println("input remove id :");
String id = in.next();
Student st = stuMap.get(id);
if (st == null){
System.out.println("id not exit");
continue;
}
stuMap.remove(id);
System.out.println("success remove "+st.name);
break;
}
}
//遍历
public void testEnterSet(){
Set<Map.Entry<String, Student>> enters = stuMap.entrySet();
for (Map.Entry<String, Student> entry : enters){
System.out.println(entry.getKey());
System.out.println(entry.getValue().name);
}
}
// 遍历
public void testKaySet(){
Set<String> keSet = stuMap.keySet();
System.out.println("have:"+stuMap.size());
for (String stuId : keSet){
Student st = stuMap.get(stuId);
if (st!=null){
System.out.println(st.id+":"+ st.name);
}
}
}
public void testModify(){
System.out.println("modify id:");
Scanner in = new Scanner(System.in);
while (true){
String stuId = in.next();
Student stu = stuMap.get(stuId);
if(stu == null){
System.out.println("id not exit");
continue;
}
System.out.println("id:"+stuId +" name:"+stu.name);
System.out.println("re-enter name");
String stuName = in.next();
Student newStu = new Student(stuId, stuName);
stuMap.put(stuId, newStu );
System.out.println("modify success");
break;
}
}
public static void main(String[] args) {
MapTest mapTest = new MapTest();
mapTest.testPut();
mapTest.testKaySet();
mapTest.testRemove();
mapTest.testEnterSet();
mapTest.testModify();
mapTest.testKaySet();
}
}
修改Map中的信息


使用put(Key,element)方法可以修改对应键值的值
public static void main(String[] args){
MapTest mt = new MapTest();
mt.testPut();
mt.testKeySet();
mt.testRemove();
mt.testEntrySet();
}
通过put方法修改Map中的已有元素
注意:这次的put方法需要包含修改元素的Key值,且该Key值对应元素必须不为NULL
public void testModify() {
Scanner input = new Scanner(System.in);
while(true) {
System.out.println("请输入你要修改的id");
String id = input.next();
Student stu = student.get(id);
if(stu==null) {
System.out.println("输入的id的学生不存在");
continue;
}
System.out.println("当前学生的名字"+stu.name);
System.out.println("请输入修改名字:");
String name = input.next();
stu.name = name;
student.put(id, stu);
break;
}
}
输入,直到不重复为止
/** * 利用put方法修改Map中的已有映射 * @param args */ public void testModify(){ //提示输入要修改的学生ID System.out.println("请输入要修改的学生ID:"); //创建一个Scanner对象,去获取从键盘上输入的学生的ID字符串 Scanner console = new Scanner(System.in); while(true){ //取得从键盘输入的学生ID String stuID = console.next(); //从students中查找该学生ID对应的学生对象 Student student = students.get(stuID); if(student == null){ System.out.println("该ID不能存在!请重新输入!"); continue; } //提示当前对应的学生对象的姓名 System.out.println("当前该学生ID,所对应的学生为:"+student.name); //提示输入新的学生姓名,来修改已有的映射 System.out.println("请输入新的学生姓名:"); String name = console.next(); Student newStudent = new Student(stuID,name); students.put(stuID, newStudent); System.out.println("修改成功!"); break; } }
put(key,新Value)用于修改
map修改方法
100%
put增加或更改
students.put(stuID,newStudent);//studID需要已存在
public void testModify() {
Scanner input = new Scanner(System.in);
while(true) {
System.out.println("请输入你要修改的id");
String id = input.next();
Student stu = student.get(id);
if(stu==null) {
System.out.println("输入的id的学生不存在");
continue;
}
System.out.println("当前学生的名字"+stu.name);
System.out.println("请输入修改名字:");
String name = input.next();
stu.name = name;
student.put(id, stu);
break;
}
}
map的hashmap 集合的修改键值,可以用put来修改
一、Map,代码如下:
package com.imooc.collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.Map.Entry;
public class MapTest {
public Map<String, Student> students;
public MapTest() {
this.students = new HashMap();
}
public void mapAdd() {
Scanner console = new Scanner(System.in);
int i = 0;
while (i < 3) {
System.out.println("请输入学生ID:");
String ID = console.next();
Student stu = students.get(ID);
if (stu == null) {
System.out.println("input student's name:");
String name = console.next();
Student newStudent = new Student(ID, name);
students.put(ID, newStudent);
System.out.println("成功添加:" + students.get(ID).name);
i++;
} else {
System.out.println("已经存在ID再输:");
continue;
}
}
testKeySet();
}
public void testKeySet() {
Set<String> keySet = students.keySet();
for (String stuId : keySet) {
Student stu = students.get(stuId);
if (stu != null) {
System.out.print(stu.name);
}
}
}
/**
* 测试删除Map中的映射
* @param args
*/
public void testRemove() {
// 获取从键盘输入的待删除学生id字符串
Scanner console = new Scanner(System.in);
while (true) {
// 提示输入待删除的学生的id
System.out.println("请输入要删除的学生id");
String ID = console.next();
// 判断该ID是否有对应的学生对象
Student st = students.get(ID);
if (st == null) {
// 提示输入的ID并不存在
System.out.println("该id不存在");
continue;
}
students.remove(ID);
System.out.println("成功删除学生:" + st.name);
break;
}
}
/**
* 通过entrySet方法来遍历Map
* @param args
*/
public void testEntrySet() {
// 通过entrySet方法,返回Map中的所有键值对
Set<Entry<String, Student>> entrySet = students.entrySet();
for(Entry<String, Student> entry: entrySet) {
System.out.println("取得键:" + entry.getKey());
System.out.println("对应的值为:" + entry.getValue().name);
}
}
/**
* 利用put方法修改Map中已有映射
* @param args
*/
public void testModify() {
// 提示输入要修改的学生id
System.out.println("请输入要修改的学生id:");
// 创建一个Scanner对象,去获取从键盘上输入的学生id字符串
Scanner console = new Scanner(System.in);
while (true) {
// 取得从键盘输入的学生id
String stuID = console.next();
// 从students中查找该学生ID对应的学生对象
Student student = students.get(stuID);
if (student == null) {
System.out.println("该id不存在,请重新输入");
continue;
}
// 提示当前对应的学生对象的姓名
System.out.println("当前该学生ID,所对应的学生为:" + student.name);
// 提示输入新的徐盛姓名,来修改已有的映射
System.out.println("请输入新的学生姓名");
String name = console.next();
Student newStudent = new Student(stuID, name);
students.put(stuID, newStudent);
System.out.println("修改成功");
break;
}
}
public static void main(String[] args) {
MapTest mt = new MapTest();
mt.mapAdd();
mt.testKeySet();
// mt.testRemove();
// mt.testEntrySet();
mt.testModify();
mt.testEntrySet();
}
}
利用put方法修改Map中已有的映射:


遍历 keySet 返回是key
entrySet 返回是键值对
修改映射使用:put方法 只需将value中的name更改
添加 put方法
删除 remove(key)
Map中修改映射也是用到put方法

结果

package com.map;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
/*
* 用来承装学生类型变量
*/
public Map<String,Student> students;
/*
* 在构造器中初始化students
*/
public MapTest()
{
this.students=new HashMap<String,Student>();
}
/*
* test the function of add
*/
public void testput() {
Scanner console=new Scanner(System.in);
int i=0;
while(i<3)
{
String ID=console.next();
Student st=students.get(ID);
if(st==null)
{
System.out.println("输入学生姓名:");
String name=console.next();
Student newstudent=new Student(ID,name);
//添加ID-name对
students.put(ID, newstudent);
System.out.println(students.get(ID).name);
i++;
}
else
{
System.out.println("ID ERROR");
continue;
}
}
}
/*
* test the function of keyset
*/
public void testkeyset()
{
//通过keyset方法得到MAP中所有key集合
Set<String> keyset=students.keySet();
System.out.println("the mount of students is:"+students.size());
for(String str:keyset)
{
System.out.println(str+" "+(students.get(str)).name);
}
}
/*
* test the function of delete
*/
public void testdelete()
{
Scanner con=new Scanner(System.in);
while(true)
{
String ID=con.next();
Student stu=students.get(ID);
if(stu==null)
{
System.out.println("the object is none");
continue;
}
students.remove(ID);
Set<String> se=students.keySet();
for(String str:se)
{
System.out.println(""+str+" "+(students.get(str)).name);
}
}
}
/*
* test the function of MODIFY by put
*/
public void testmodify()
{
Scanner con=new Scanner(System.in);
while(true)
{
String ID=con.next();
Student stu=students.get(ID);
if(stu==null)
{
System.out.println("the object is none");
continue;
}
String newname=con.next();
Student student=new Student(ID,newname);
students.put(ID, student);
Set<String> se=students.keySet();
for(String str:se)
{
System.out.println(""+str+" "+(students.get(str)).name);
}
}
}
public static void main(String[] args) {
MapTest ma=new MapTest();
ma.testput();
ma.testkeyset();
//ma.testdelete();
ma.testmodify();
}
}
Map的修改操作
package com.map;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
/*
* 用来承装学生类型变量
*/
public Map<String,Student> students;
/*
* 在构造器中初始化students
*/
public MapTest()
{
this.students=new HashMap<String,Student>();
}
/*
* test the function of add
*/
public void testput() {
Scanner console=new Scanner(System.in);
int i=0;
while(i<3)
{
String ID=console.next();
Student st=students.get(ID);
if(st==null)
{
System.out.println("输入学生姓名:");
String name=console.next();
Student newstudent=new Student(ID,name);
//添加ID-name对
students.put(ID, newstudent);
System.out.println(students.get(ID).name);
i++;
}
else
{
System.out.println("ID ERROR");
continue;
}
}
}
/*
* test the function of keyset
*/
public void testkeyset()
{
//通过keyset方法得到MAP中所有key集合
Set<String> keyset=students.keySet();
System.out.println("the mount of students is:"+students.size());
for(String str:keyset)
{
System.out.println(str+" "+(students.get(str)).name);
}
}
/*
* test the function of delete
*/
public void testdelete()
{
Scanner con=new Scanner(System.in);
while(true)
{
String ID=con.next();
Student stu=students.get(ID);
if(stu==null)
{
System.out.println("the object is none");
continue;
}
students.remove(ID);
Set<String> se=students.keySet();
for(String str:se)
{
System.out.println(""+str+" "+(students.get(str)).name);
}
}
}
/*
* test the function of MODIFY by put
*/
public void testmodify()
{
Scanner con=new Scanner(System.in);
while(true)
{
String ID=con.next();
Student stu=students.get(ID);
if(stu==null)
{
System.out.println("the object is none");
continue;
}
String newname=con.next();
Student student=new Student(ID,newname);
students.put(ID, student);
Set<String> se=students.keySet();
for(String str:se)
{
System.out.println(""+str+" "+(students.get(str)).name);
}
}
}
public static void main(String[] args) {
MapTest ma=new MapTest();
ma.testput();
ma.testkeyset();
//ma.testdelete();
ma.testmodify();
}
}
//利用put方法修改Map中的已有映射
public void testModify(){
//提示要输入要修改的学生ID
System.out.println("请输入要修改的学生ID:");
//创建一个Scanner对象,去获取从键盘上输入的学生ID字符串
Scanner console=new Scanner(System.in);关于Map:
1.初始化变量 Map<String,Student>students = new HashMap<String,Student>() //初始化key值为String,存放的数据类型为student的students集合
2.put()增加对象 Student newStu = new Student(ID,name); students.put(ID,newStudent);//以ID作为key值
3.查找对象 (1)Set<String>keySet = students.keySet(); for(String stuId:keySet){ Student st =students.get(stuId); }//先用keySet()获取所有的key,再遍历获取每一个对象 (2)Set<Entry<String,Student>>entrySet = students.entrySet();//由于每个键值对都以entry类型存放,yongentrySet()方法获取所有键值对 for(Entry<String,Student>entry:entrySet) {//遍历获取键值对 entry.getKey();//获取key entry.getValue();//获取value }
4.删除 students.remove(ID);//根据key的值删除
5.修改 Student stu = students.get(ID); Student newStudent =new Student(ID,newname); students.put(ID,newStudent); /*Map中没有直接修改的方法,所以采用先找出对象,然后不修改key值,只修改value的方法进行修改*/
V put(K key, V value)
指定值替换旧值
修改映射put方法
Map 修改
先是使用get()方法传入想要修改的 键 ,
再使用 put 方法来传入 新数据 来替代 Map 中的值
Demo4/MapTest
//利用put方法修改Map中的已有映射
public void testModify(){
//提示要输入要修改的学生ID
System.out.println("请输入要修改的学生ID:");
//创建一个Scanner对象,去获取从键盘上输入的学生ID字符串
Scanner console=new Scanner(System.in);
while(true){
//取得从键盘输入的学生ID
String stuID=console.next();
//从students中查找学生ID对应的学生对象
Student student=students.get(stuID);
if(student==null){
System.out.println("该ID不存在!请从新输入!");
continue;}
}
//提示当前对应的学生对象的姓名
System.out.println("当前学生ID,所对应的学生为:"+student.name);
//提示输入新的学生姓名,来修改已有的映射
System.out.println("请输入新的学生姓名:");
String name=console.next();
Student newStudent=new Student(stuID,name);
students.put(stuID,newStudent);
System.out.println("修改成功");
}
}
遍历 keySet 返回是key entrySet 返回是键值对 修改 put方法 只需将value中的name更改 添加 put方法 删除 remove(key)
关于Map: 1.初始化变量 Map<String,Student>students = new HashMap<String,Student>() //初始化key值为String,存放的数据类型为student的students集合 2.put()增加对象 Student newStu = new Student(ID,name); students.put(ID,newStudent);//以ID作为key值 3.查找对象 (1)Set<String>keySet = students.keySet(); for(String stuId:keySet){ Student st =students.get(stuId); }//先用keySet()获取所有的key,再遍历获取每一个对象 (2)Set<Entry<String,Student>>entrySet = students.entrySet();//由于每个键值对都以entry类型存放,yongentrySet()方法获取所有键值对 for(Entry<String,Student>entry:entrySet) {//遍历获取键值对 entry.getKey();//获取key entry.getValue();//获取value } 4.删除 students.remove(ID);//根据key的值删除 5.修改 Student stu = students.get(ID); Student newStudent =new Student(ID,newname); students.put(ID,newStudent); /*Map中没有直接修改的方法,所以采用先找出对象,然后不修改key值,只修改value的方法进行修改*/
Set修改Entry中的Value值。用集合.put(key,对象)方法。
利用put方法修改Map中已有映射,Map.put(Key,Value)
遍历 keySet 返回是key
entrySet 返回是键值对
修改 put方法 只需将value中的name更改
添加 put方法
删除 remove(key)
代码如下:http://www.imooc.com/article/16598
put()方法,若添加的entry中的键在该映射中不存在映射关系,则添加;若添加的entry中的键在该映射中已有映射关系,则用新的value替代原来的value!