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

    }



    }

     

  • 相关阅读:
    Spring Security
    用过sessionid防钓鱼
    request获取json
    相对于Statement,PreparedStatement的优点是什么?
    jquery中$.get()提交和$.post()提交有区别吗?
    相对于Statement,PreparedStatement的优点是什么?
    什么是Redis?
    如何解决表单提交的中文乱码问题
    execute,executeQuery,executeUpdate的区别是什么?
    根据你以往的经验简单叙述一下MYSQL的优化
  • 原文地址:https://www.cnblogs.com/ltb6w/p/7965938.html
Copyright © 2011-2022 走看看