黑马程序员技术交流社区

标题: 很经典的集合类型,囊括了很多Java基础,对基础一种的测... [打印本页]

作者: 1169646761    时间: 2014-9-6 01:30
标题: 很经典的集合类型,囊括了很多Java基础,对基础一种的测...
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

import cn.itcast.bean.Student;

public class Test {

        /**
         *  请输入学生考试成绩:
         * 张三,80,80,80
         * 李四,70,75,65
         * 王五,90,95,80
         * 赵六,60,60,60
         * quit
         *
         * 排序后的学生信息:
         * 王五,90,95,80,265
         * 张三,80,80,80,240
         * 李四,70,75,65,210
         * 赵六,60,60,60,180
         */
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);                        //创建Scanner对象
                System.out.println("请输入学生成绩:格式是 姓名,数学成绩,语文成绩,英语成绩");
                TreeSet<Student> ts = new TreeSet<>(new Comparator<Student>() {
                        @Override
                        public int compare(Student s1, Student s2) {
                                int num = s2.getSum() - s1.getSum();        //按照学生的总成绩降序排列
                                return num == 0 ? 1 : num;                                //如果总成绩一样保留,返回不是0即可保留
                        }
                });
                while(true) {
                        String line = sc.nextLine();                                //将键盘录入的结果存储在line中
                        if("quit".equals(line))                                                //如果是quit
                                break;                                                                        //退出无限循环
                        try {
                                String[] arr = line.split(",");                        //将录入的字符串切割
                                int math = Integer.parseInt(arr[1]);        //将数组中的第二个值转换为int
                                int chinese = Integer.parseInt(arr[2]);
                                int english = Integer.parseInt(arr[3]);
                                ts.add(new Student(arr[0], math, chinese, english));//封装成Student对象并添加到TreeSet集合中
                        } catch (Exception e) {                                                //录入格式错误,温馨提示
                                System.out.println("您录入的格式非法,格式是 姓名,数学成绩,语文成绩,英语成绩");
                        }
                }
               
                System.out.println("排序后的学生成绩是:");
                for (Student student : ts) {                                        //遍历集合
                        System.out.println(student);                                //打印集合中的每一个元素
                }
        }

}



作者: 泥土知识    时间: 2014-9-6 08:27
和黑马的测试题相比,差不多吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2