zoukankan      html  css  js  c++  java
  • Java中面向对象的分拣存储

    Student.java

    package yzhou.map;
    
    /**
     * 学生类
     * 
     * 
     * @author 洋
     *
     */
    public class Student
    {
        private String name;
        private String no;
        private double score;
        public Student()
        {
            
        }
        public Student(String name, String no, double score)
        {
            super();
            this.name = name;
            this.no = no;
            this.score = score;
        }
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name = name;
        }
        public String getNo()
        {
            return no;
        }
        public void setNo(String no)
        {
            this.no = no;
        }
        public double getScore()
        {
            return score;
        }
        public void setScore(double score)
        {
            this.score = score;
        }
        
        
        
    }

    ClassRoom.java

    package yzhou.map;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 一个班级 多个学生
     * @author 洋
     *
     */
    public class ClassRoom
    {
        private String no;
        private List<Student> stuList;
        private double total;
        
        public ClassRoom()
        {
            stuList = new ArrayList<Student>();
        }
    
        public ClassRoom(String no)
        {
            this();
            this.no = no;
        }
        
        public ClassRoom(String no, List<Student> stuList, double total)
        {
            super();
            this.no = no;
            this.stuList = stuList;
            this.total = total;
        }
    
        public String getNo()
        {
            return no;
        }
    
        public void setNo(String no)
        {
            this.no = no;
        }
    
        public List<Student> getStuList()
        {
            return stuList;
        }
    
        public void setStuList(List<Student> stuList)
        {
            this.stuList = stuList;
        }
    
        public double getTotal()
        {
            return total;
        }
    
        public void setTotal(double total)
        {
            this.total = total;
        }
        
        
    }

    MapDemo03.java

    package yzhou.map;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * 
     * 面向对象+分解存储
     * @author 洋
     *
     */
    public class MapDemo03
    {
        public static void main(String[] args)
        {
            List<Student> stuList = exam();
            Map<String, ClassRoom> map = count(stuList);
            view(map);
        }
        
        /*
         * 查看每个班的总分和平均分    --》遍历map
         * */
        public static void view(Map<String, ClassRoom> map)
        {
            Set<String> keys = map.keySet();
            //获取迭代器对象
            Iterator<String> keysIt = keys.iterator();
            //先判断
            while(keysIt.hasNext()){
                //在获取
                String no = keysIt.next();
                ClassRoom room = map.get(no);
                //查看总分 计算平均分
                double total = room.getTotal();
                double avg = total/room.getStuList().size();
                System.out.println(no+"--->"+total+"-->"+avg);
            }
            
        }
        
        /*
         * 统计分析
         * */
        public static Map<String, ClassRoom> count(List<Student> list){
            Map<String, ClassRoom> map = new HashMap<String,ClassRoom>();
            //1.遍历
            for(Student stu:list)
            {
                //分拣查看是否存在, 该编号的班级
                String no = stu.getNo();
                double score = stu.getScore();
                //如果不存在 ,创建班级
                ClassRoom room  = map.get(no);
                if(null==room)
                {
                    room = new ClassRoom(no);
                    map.put(no, room);
                }
                
                //存在,放入学生
                room.getStuList().add(stu);
                room.setTotal(room.getTotal()+score);
            }
            return map;
        }
        
        
        
        /*
         * 模拟考试 测试数据到List 中
         * */
        
        public static List<Student> exam(){
            List<Student> list = new ArrayList<Student>();
            //存放学生成绩
            list.add(new Student("yzhou01","a",80));
            list.add(new Student("yzhou02","a",80));
            list.add(new Student("yzhou03","a",80));
            list.add(new Student("yzhou04","b",80));
            list.add(new Student("yzhou05","b",80));
            list.add(new Student("yzhou06","b",80));
            return list;
        };
        
    }
  • 相关阅读:
    SQL函数说明大全
    (火炬)MS SQL Server数据库案例教程
    SQL 数据库基础语句
    java 中length,length(),size()的区别
    关于webLogic启动问题
    dreamweaver读jsp时遇到的问题
    Microsoft 注册表编辑器 (regedit.exe)
    由正则表达式REGEXP_REPLACE开始
    Hello World
    Python基础目录
  • 原文地址:https://www.cnblogs.com/zychengzhiit1/p/4790440.html
Copyright © 2011-2022 走看看