Map映射
1、创建一个学生类,包含以下属性:
(1)学号stuNo, 姓名name, 分数score
(2)进行合理的封装
2、创建5个学生对象,各属性如下
3、使用Map集合存放学生对象,集合中不能出现相同学号的学生信息(注:学生对象作为Map的value值)。
4、对集合中的数据,做如下操作:
(1)分数高于68的学生,加5分
(2)计算平均分并输出
(3)调整后的集合数据输出到控制台,(输出效果见下图,其中低于70为不及格)
(4)将低于70分的学生从集合中删除
(5)遍历输出删除后的集合*/
参考如下:
Student.java 文件 package com.xiongluoluo.demo4; public class Student { private String stuNo; private String name; private double score; public Student(){} public Student(String stuNo, String name, double score) { this.stuNo = stuNo; this.name = name; this.score = score; } @Override public String toString() { return "Student{" + "stuNo='" + stuNo + '\'' + ", name='" + name + '\'' + ", score=" + score + '}'; } public String getStuNo() { return stuNo; } public void setStuNo(String stuNo) { this.stuNo = stuNo; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } }
StudentTest.java 测试文件 package com.xiongluoluo.demo4; import org.junit.jupiter.api.Test; import java.util.*;
public class StudentTest { @Test public void test4(){ Student student1 = new Student("001","dadada",93); Student student2 = new Student("002","dadada",88); Student student3 = new Student("003","dadada",33); Student student4 = new Student("004","dadada",66); Student student5 = new Student("005","dadada",55); Map<String,Student> map = new HashMap<>(); map.put(student1.getStuNo(),student1); map.put(student2.getStuNo(),student2); map.put(student3.getStuNo(),student3); map.put(student4.getStuNo(),student4); map.put(student5.getStuNo(),student5); Set<Map.Entry<String, Student>> entrySet = map.entrySet(); System.out.println("*****分数高于68的学生加5分*****"); for(Map.Entry<String,Student> entry : entrySet){ Student s = entry.getValue(); if(s.getScore()>68){ s.setScore(s.getScore()+5); } //System.out.println(s); } System.out.println("*****计算平均分并输出*****"); double sum = 0; for(Map.Entry<String,Student> entry : entrySet){ Student s = entry.getValue(); sum += s.getScore(); //System.out.println(s); } double avg = sum / map.size(); System.out.println("平均分为:"+avg); System.out.println("*****调整后的集合数据输出到控制台,(输出效果见下图,其中低于70为不及格)*****"); List<String> list = new ArrayList<>(); for(Map.Entry<String,Student> entry : entrySet){ Student s = entry.getValue(); if(s.getScore()<70){ System.out.println(s+"\t"+"不及格"); list.add(entry.getKey()); }else { System.out.println(s); } } System.out.println("*****将低于70分的学生从集合中删除*****"); for(String stuNo : list){ map.remove(stuNo); } System.out.println("*****遍历输出删除后的集合*****"); for(Map.Entry<String,Student> entry : entrySet){ Student s = entry.getValue(); System.out.println(s); } } }