传智杯Java志愿者传智专修学院总共召集了n位志愿者来负责打扫活动,现在需要你负责帮忙统计每位志愿者的工作情况,用来制作光荣榜,给他们发小花花

简介: 传智杯Java志愿者传智专修学院总共召集了n位志愿者来负责打扫活动,现在需要你负责帮忙统计每位志愿者的工作情况,用来制作光荣榜,给他们发小花花

2ddf28f67290494da09a83f454f2dcfe.pngf1f5b9e331364ac09108127d5d593a7e.png


Java实现思路:创建一个志愿者内部类,包括编号、服务时长、难度、贡献度属性。使用ArrayList将多个志愿者对象联系在一起。使用Collection的sort方法,重写compare方法进行按规则比较。


Java代码:


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main{
    static class volunteer{
        public int id;
        public int t;
        public int k;
        public int conty;
        public volunteer(int id,int t, int k) {
            this.id = id;
            this.t = t;
            this.k = k;
            conty = t*k;
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<volunteer> list = new ArrayList<>();
        for (int i = 1; i <= n; i++) {
            list.add(new volunteer(i,sc.nextInt(),sc.nextInt()));
        }
        Collections.sort(list, new Comparator<volunteer>() {
            public int compare(volunteer o1, volunteer o2) {
                if (o1.conty != o2.conty) {
                    return o2.conty - o1.conty;
                }else if(o1.t != o2.t) {
                    return o2.t - o1.t;
                }else {
                    return o1.id - o2.id;
                }
            }
        });
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i).id+" ");
        }
    }
}


相关文章
|
2月前
|
Arthas Java 中间件
如何优雅的在java中统计代码块耗时
如何优雅的在java中统计代码块耗时
36 1
|
4月前
|
人工智能 算法 Java
第十三届蓝桥杯B组Java(试题C:字符统计)
第十三届蓝桥杯B组Java(试题C:字符统计)
54 0
|
8月前
|
搜索推荐 Java
【Java每日一题,字典树】 统计难题
【Java每日一题,字典树】 统计难题
|
20天前
|
JavaScript Java 测试技术
基于Java的志愿者管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的志愿者管理系统的设计与实现(源码+lw+部署文档+讲解等)
30 0
|
2月前
|
存储 Java API
Java统计功能
Java统计功能
14 0
|
3月前
|
Java
java字符串练习题4、统计一行字符串中所有的字符类型数量
java字符串练习题4、统计一行字符串中所有的字符类型数量
30 0
|
4月前
|
Java C++ Python
Rust每日一练(Leetday0016) 全排列I\II、旋转图像
Rust每日一练(Leetday0016) 全排列I\II、旋转图像
22 0
Rust每日一练(Leetday0016) 全排列I\II、旋转图像
|
4月前
|
算法 C++ Java
Java每日一练(20230423) 数组元素统计、杨辉三角II、二进制求和
Java每日一练(20230423) 数组元素统计、杨辉三角II、二进制求和
29 0
Java每日一练(20230423) 数组元素统计、杨辉三角II、二进制求和
|
4月前
|
Java API Scala
【Flink】Flink Java 统计词频 开发
【1月更文挑战第26天】【Flink】Flink Java 统计词频 开发
|
9月前
|
Java C语言
字符串统计-C语言/Java
字符串统计-C语言/Java
70 0