zoukankan      html  css  js  c++  java
  • Comparator 排序 ArrayList 实操练习

    package ltb6w;


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


    class GradeStatistic {

    Scanner sc=new Scanner(System.in);

    private String entername=null ;

    private int inputscore = 0;

    private List<Mark> al=new ArrayList<Mark>();

    private Comparator<Mark> ScoresRanking;
    private Comparator<Mark> SortByName;


    public GradeStatistic() {


    }


    class Mark {

    private int score;
    private String name;

    public Mark(String n,int i) {


    score=i;
    name=n;

    }

    public int getScore() {

    return score;
    }

    public String getName() {

    return name;

    }


    }



    public void enter() throws Exception {


    while(true) {


    entername= sc.next();

    if(entername.equals("over")) {
    break;
    }

    inputscore=sc.nextInt();


    al.add(new Mark(entername,inputscore));


    System.out.print("姓名:"+this.entername+",分数:"+inputscore+" ");



    }


    }

    public void getScoresRanking() {

    this.ScoresRanking=new ScoresRanking(); //连接上对象

    try {
    Collections.sort(al,ScoresRanking );
    }catch(Exception e) {
    e.getMessage();
    }

    for(int i=0;i<al.size();i++) {

    System.out.println("分数排序-->"+"姓名:"+al.get(i).getName()+"分数:"+al.get(i).getScore());

    }
    }


    public void getSortByName() {

    this.SortByName=new SortByName();//连接上对象

    try {
    Collections.sort(al,SortByName );
    }catch(Exception e) {
    e.getMessage();
    }

    for(int j=0;j<al.size();j++) {

    System.out.println("姓名排序"+"姓名:"+al.get(j).getName()+"分数:"+al.get(j).getScore());

    }
    }

    public class ScoresRanking implements Comparator<Mark>{

    //分数排序

    public int compare(Mark arg0, Mark arg1) {

    return (arg0.getScore()<arg1.getScore()?-1:(arg0.getScore()==arg1.getScore()?0:1));

    }

    }


    public class SortByName implements Comparator<Mark> {

    //姓名排序

    public int compare(Mark m1,Mark m2) {

    return (m1.getName().compareTo(m2.getName()));
    }
    }



    public static void main(String[] args) {

    GradeStatistic gs= new GradeStatistic();

    System.out.print("输入姓名和分数:"+" ");

    try {
    gs.enter();
    } catch (Exception e) {

    e.printStackTrace();
    }

    gs.getScoresRanking();//分数排序
    gs.getSortByName();//姓名排序

    }



    }

     

  • 相关阅读:
    php连接mysql数据库
    关于chrome控制台警告:Synchronous XMLHttpRequest on the main thread
    mac“打不开身份不明的开发者”
    微信小程序开发warning: Now you can provide attr "wx:key" for a "wx:for" to improve performance
    将任何GitHub内的代码转为外部CDN网址
    把自己的代码发布到npm(npm publish)
    wordpress写文章添加gif图片变成静态图片的解决办法
    canvas实现刮刮乐
    api文档管理系统合集
    niubi-job:一个分布式的任务调度框架设计原理以及实现
  • 原文地址:https://www.cnblogs.com/ltb6w/p/7965938.html
Copyright © 2011-2022 走看看