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); } } }

  

posted @ 2020-11-30 22:01  小小阿星  阅读(202)  评论(0编辑  收藏  举报