蓝桥杯1598-学生成绩-题解(超详细小白易懂JAVA版)

文章介绍了如何在JAVA中通过创建Comparator并重写compare方法,对包含学生信息的对象列表按照成绩属性进行升序排序。示例代码展示了整个过程,包括读取输入、创建学生对象、存储到列表以及调用Collections.sort进行排序。
摘要由CSDN通过智能技术生成

分类->蓝桥杯JAVA练习->简单题

题目 1598: 蓝桥杯算法训练VIP-学生成绩

 

解题思路:

这是一道非常典型的对象排序问题。

题目要求对学生类对象中的成绩属性按升序排序。

我采用的是列表存放学生对象,使用Comparator重写排序方法进行成绩升序排序。

不了解Comparator的同学应先去看一下相关用法。

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

class Stu
{
		String name;
		String gender;
		int age;
		int score;
	
	public String toString()
	{
		return name+" "+gender+" "+age+" "+score;
	}
	
}

public class Main 
{
	public static void main(String[] args)
	{		
		Comparator<Stu> comparator = new Comparator<Stu>()

	{
			public int compare(Stu s1,Stu s2)
			{
				
					return s1.score-s2.score;//升序
				  //return s2.score-s1.score;	//降序	
			}			
	};
		
		
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		ArrayList<Stu> stu=new ArrayList<Stu>(); //定义学生列表
		for(int i=0;i<n;i++)        //逐个输入
		{
			Stu student=new Stu();
			student.name=sc.next();
			student.gender=sc.next();
			student.age=sc.nextInt();
			student.score=sc.nextInt();
			stu.add(student);			//添加到列表中
		}
		
	   Collections.sort(stu,comparator);//使用重写的排序方法进行排序
	   
	   for(Stu s:stu)
	   {
		   System.out.println(s);
	   }
	}
}

总结:
         对象排序类问题可直接使用以此题为例的模板

         记住Comparator中的compare方法里,参数1-参数2是升序

                                                                         参数2-参数1是降序

                                           技巧: 参数1-参数2,即1->2,是升的,故升序

                                                       参数2-参数1,即2->1,是降的,故降序
        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值