徐国峰?在看吗?再看给你拳!

学生类

点击查看代码
package prng;

public class Student {
    private String id;
    private String name;
    private String source;
    private int grade;

    public Student() {

    }

    public Student(String id, String name, String source, int grade) {
        this.id = id;
        this.name = name;
        this.source = source;
        this.grade = grade;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getSource() {
        return source;
    }

    public int getGrade() {
        return grade;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }
}

工具类
点击查看代码
package prng;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class uit {
    public List<Student> 排序(List<Student> students,String 科目){
        List<Student> students1 =new ArrayList<>();
for (Student student:students){
    if(student.getSource().equals(科目)){

        students1.add(student);

    }
}
        Collections.sort(students1,new Comparator<Student>() {

public int compare(Student u1, Student u2) {
int diff = u1.getGrade() - u2.getGrade();
if (diff < 0) {


    return 1;

}else if (diff > 0) {


return -1;
}
return 0; //相等为0
}
});
return students1;
    }
    public 平均值最大值最小值 平均值最大值最小值(List<Student> students,String 科目){
       students= 排序(students,科目);
       平均值最大值最小值 平均值最大值最小值 = new 平均值最大值最小值();

       平均值最大值最小值.set最大值(students.get(0).getGrade());

       平均值最大值最小值.set最小值(students.get(students.size()-1).getGrade());
       int 平均值=0;
       for (Student student:students){
           平均值+=student.getGrade();
       }

       平均值=平均值/students.size();
       平均值最大值最小值.set平均值(平均值);
       return 平均值最大值最小值;
    }
}

用来接收最大最小值的实体类
点击查看代码
package prng;

public class 平均值最大值最小值 {
    private int 最大值;
    private int 最小值;
    private int 平均值;

    public int get平均值() {
        return 平均值;
    }

    public int get最小值() {
        return 最小值;
    }

    public int get最大值() {
        return 最大值;
    }

    public void set平均值(int 平均值) {
        this.平均值 = 平均值;
    }

    public void set最大值(int 最大值) {

    this.最大值=最大值;
    }

    public void set最小值(int 最小值) {
        this.最小值 = 最小值;
    }
}


测试方法
点击查看代码

import prng.Student;
import prng.uit;
import prng.平均值最大值最小值;

import java.util.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;

public class ReadAndWrite {
    public static void main(String[] args) throws IOException {
        uit uit1=new uit();
//      读取文本里的数据
        FileReader f=new FileReader("C:/java/grade.txt");
        BufferedReader br=new BufferedReader(f);
//        把文本里的数据存入到arraylist集合中
        List<Student> array=new ArrayList<>();
        String line;
        while((line= br.readLine())!=null){
            Student stu=new Student();

            String[] strArray=line.split(",");
            stu.setId(strArray[0]);
            stu.setName(strArray[1]);
            stu.setSource(strArray[2]);

            stu.setGrade(Integer.parseInt(strArray[3]));
            array.add(stu);
        }
        br.close();
        array=uit1.排序(array,"数学");
        平均值最大值最小值 peng=new 平均值最大值最小值();
        peng=uit1.平均值最大值最小值(array,"数学");
        System.out.println(peng.get平均值()+"  "+peng.get最大值()+"  "+peng.get最小值());
        System.out.println("学号\t姓名\t科目\t成绩");
        for(int x=0;x<array.size();x++){
            Student stu=array.get(x);
            System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getSource()+"\t"+stu.getGrade());
        }




    }
}

posted @ 2021-09-27 22:43  xiaoqingfeng  阅读(37)  评论(0)    收藏  举报