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

    }



    }

     

  • 相关阅读:
    href 和src 的区别
    一道返回不重复数组的测试题
    使用Node.js+Socket.IO搭建WebSocket实时应用
    WebSocket 是什么原理?为什么可以实现持久连接?
    图片异步加载
    30分钟新手git教程
    通过ajax异步调用返回值
    [JS] 让人犯晕的JavaScript变量赋值
    javaScript字符串操作
    (String),toString(),String.valueOf()
  • 原文地址:https://www.cnblogs.com/ltb6w/p/7965938.html
Copyright © 2011-2022 走看看