java map学习(学生管理慕课网代码)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BODOA/article/details/79899011
关于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的方法进行修改*/
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class MapTest {
	
//声明map
public Map <String,Student>students;

//初始化声明的student
public MapTest() {
	this.students = new HashMap<String,Student>();
}

//测试添加:输入学生id,判断是否占有
//输入姓名,创建学生对象,并添加到map中;
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);
            //添加到map中
            students.put(ID, newStudent);
            System.out.println("学生添加成功!!");
            i++;
            
            		
		}
		else {
		System.out.println("该同学已存在!!!");
		
		}
	}
}

//map中keyset测试
public void testKeySet() {
	
Set<String> KeySet=students.keySet();	//用set存储keyset返回的键值
System.out.println("共"+KeySet.size()+"学生");
for(String Stuid :KeySet) {
	Student st = students.get(Stuid);
	if(st!=null)
		System.out.println("学生:"+st.name);
}

}

//删除map中的元素方法
public void testRemove() {
	System.out.println("请输入删除学生的id:");
	Scanner console = new Scanner(System.in);
	while(true) {
		String id = console.next();
		Student st = students.get(id);
		if(st==null){
			System.out.println("该同学不存在!");
			continue;	
		}
		students.remove(id);
		System.out.println("删除成功!"+st.name+"已删除");
		break;
	}
}
//map修改元素,处找出key值对应的value ,修改value;
public void testModify() {
	while(true){
		Scanner in = new Scanner(System.in);
		System.out.println("请输入修改的id:");
		String ID=in.next();
		//从students中查找该学生ID对应的学生对象
		Student st=students.get(ID);//获取values
		
		if(st==null){//判断是否有该ID对象
			System.out.println("ID不存在");
			continue;
		}
		String name=in.next();
		Student newst=new Student(ID,name);
		System.out.println("学生姓名修改为:"+name);
		students.put(ID,newst);//修改;此ID为要修改此ID的value的ID
		
		break;

	}
	
}
public static void main(String[] args) {
		
MapTest mt =new MapTest();
System.out.println("请添加学生信息:");
mt.testput();
mt.testKeySet();
mt.testRemove();
mt.testModify();
	}

}

猜你喜欢

转载自blog.csdn.net/BODOA/article/details/79899011