传智杯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+" ");
        }
    }
}


相关文章
|
6月前
|
Arthas Java 中间件
如何优雅的在java中统计代码块耗时
如何优雅的在java中统计代码块耗时
84 1
|
6月前
|
人工智能 算法 Java
第十三届蓝桥杯B组Java(试题C:字符统计)
第十三届蓝桥杯B组Java(试题C:字符统计)
91 0
|
3月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
44 0
|
5月前
|
Java Serverless
Java字符个数统计代码
Java字符个数统计代码
86 6
|
5月前
|
安全 小程序 Java
基于Java志愿者招募网站设计和实现(源码+LW+调试文档+讲解等)
基于Java志愿者招募网站设计和实现(源码+LW+调试文档+讲解等)
|
5月前
|
Java
java使用Files.walkFileTree统计文件夹下的文件夹和文件数量
java使用Files.walkFileTree统计文件夹下的文件夹和文件数量
|
5月前
|
Java
2022蓝桥杯大赛软件类省赛Java大学B组真题 刷题统计
2022蓝桥杯大赛软件类省赛Java大学B组真题 刷题统计
51 0
|
6月前
|
JavaScript Java 测试技术
基于Java的志愿者管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的志愿者管理系统的设计与实现(源码+lw+部署文档+讲解等)
89 0
|
6月前
|
存储 Java API
Java统计功能
Java统计功能
65 0
|
6月前
|
Java API Scala
【Flink】Flink Java 统计词频 开发
【1月更文挑战第26天】【Flink】Flink Java 统计词频 开发