java用匿名类处理分类汇总

java用匿名类处理分类汇总

ID:36437996

大小:37.50 KB

页数:6页

时间:2019-05-10

java用匿名类处理分类汇总_第1页
java用匿名类处理分类汇总_第2页
java用匿名类处理分类汇总_第3页
java用匿名类处理分类汇总_第4页
java用匿名类处理分类汇总_第5页
资源描述:

《java用匿名类处理分类汇总》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、用匿名类处理分类汇总分类汇总是统计中常用,举例来说如统计学生成绩,及格不及格的归类,分优良中差等级归类等,每个单项代码很好写,但是如果分类汇总的项目多了,能一种汇总写一个函数吗?比如说有些科目60分才算及格,有些科目50分就算;有些老师喜欢分优良中差四等,有些老师却喜欢分ABCD;不一而足,如果每个都写一个函数无疑是个编写和维护恶梦.   如果我们用匿名类把分类汇总的规则和分类汇总的过程分别抽象出来,代码就清晰灵活多了,以下代码讲述了这个过程,代码比较简单,这里就不赘述了,相信大家都能看明白.首先是数据的基本类Student:public class Student{    private

2、 String name;    private int score;        public Student(String name,int score){        this.name=name;        this.score=score;    }        public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getScore() {        ret

3、urn score;    }    public void setScore(int score) {        this.score = score;    }    }然后是用于分类汇总的类,它强制子类实现getKey和getvalue两个方法:   public abstract class ClassifyRule {    public Student student;        public ClassifyRule(){            }        public void setStudent(Student student) {        this

4、.student = student;    }        abstract public String getKey()//汇总关键字    abstract public int getValue();//汇总的结果}接下来是对Student进行CRUD处理的StudentService类,注意getSum方法,它保留了筛选过程,筛选规则则不在其中:import java.util.ArrayList;import java.util.Hashtable;import java.util.List;public class StudentService {    private L

5、ist students;    public StudentService() {        students = new ArrayList();    }    public void add(Student student) {        students.add(student);//添加学生    }    public Hashtable getSum(ClassifyRule rule) {//根据汇总法则筛选学生        Hashtable ht = ne

6、w Hashtable();        for (Student student : students) {            rule.setStudent(student);            String key = rule.getKey();            int value = rule.getValue();            if (ht.containsKey(key)) {                Integer oldValue = ht.remove(key);                oldVa

7、lue += value;                ht.put(key, oldValue);            } else {                ht.put(key, value);            }        }        return ht;    }}最后是测试代码,注意其中筛选规则的创建:import java.util.Hashtable;import java.u

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。