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();//姓名排序

    }



    }

     

  • 相关阅读:
    uni-app 轮播图
    uni-app 头部及底部导航
    Eapp 创建项目及简单应用
    nodeJS学习笔记 express获得GET和POST请求参数
    Promise 之基础详细介绍
    动态代理个人理解
    springboot实现日志记录
    调节 alert confirm prompt 的位置
    打印日志文件
    Java正则速成秘籍(三)之见招拆招篇
  • 原文地址:https://www.cnblogs.com/ltb6w/p/7965938.html
Copyright © 2011-2022 走看看