python题目用java解决

百度到的题目内容和数据来源,也顺便插个眼,有时间的时候玩下其他题目:

研发工程师-编程题(python)_Le_ander的博客-CSDN博客

研发工程师L1Python学习 | 程序员灯塔 (wangt.cc)

python编程考试题目大全_彭_江南的博客-CSDN博客_python编程题

LeetCode,这个神奇的网站听是听过,但本人还是第一次进入,发现也有我做过的题目

292. Nim 游戏 - 力扣(LeetCode)

推荐两本干货pdf给java新手上路(自行网上寻找):

Java核心技术·卷 I(原书第11版) .pdf

Java核心技术·卷 II (原书第11版).pdf

good,进入正题:

找到的题目基本都是python版本,还发现了我找的题目基本都来源于python经典题目,本人没学过python,发现没有java版本的又需要java实现,唯一找到的实现也是新建实体类啥的非常复杂,在考试中肯定不可能有这么多时间,决定自己手码一下,题目如下:

某公司要针对员工情况统一调薪,现有一个员工列表,包含姓名、职级、工作年限、工资信息。现要求将该列表按以下规则重新排序:

1、职级高的排在前面

2、若职级相同,按工资少的排前面

3、若工资相同,工作年限长的排前面

输入描述:
第一行输入一个整数n,表示员工列表中员工的人数

接下来的n行,分别输入员工的姓名、职级、工作年限和工资信息,各项信息用空格分隔

输出描述:
输出按要求重新排列的员工列表,每名员工信息(姓名、职级、工作年限和工资)占一行

示例
示例1
输入
6
张三 3 3 3000
李四 3 4 3000
王五 3 3 4000
赵六 4 3 3000
陆奇 4 4 4000
闫八 4 4 3980.99
输出
赵六 4 3 3000.00
闫八 4 4 3980.99
陆奇 4 4 4000.00
李四 3 4 3000.00
张三 3 3 3000.00
王五 3 3 4000.00

package cn.lcj.example;

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[][] list = new String[n][4];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 4; j++) {
                list[i][j] = in.next();
                /*if (j == 3) {
                    list[i][j] = String.format("%.2f", Double.parseDouble(list[i][3]));
                }*/
            }
        }

        Arrays.sort(list, new Comparator<String[]>() {// 该接口的compare方法,默认为从小到大排序
            //  重写该方法
            @Override
            public int compare(String[] e1, String[] e2) {// 返回值大于0会交换以实现升降序排列
                // 如果第二列元素相等,比较第四列元素,如果第四列元素相等,比较第二列
                if (e1[1].equals(e2[1])) {
                    if (e1[3].equals(e2[3])) {
                        return e2[2].compareTo(e1[2]);// 降序
                    }
                    return e1[3].compareTo(e2[3]);// 升序
                }
                return e2[1].compareTo(e1[1]);// 降序
            }
        });

        /*for (String[] e : list) {
            String str = Arrays.toString(e);
            System.out.println(str.substring(1, str.length() - 1).replaceAll(",", ""));
        }*/

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print(list[i][j] + " ");
            }
            System.out.printf("%.2f%n", Double.parseDouble(list[i][3]));
        }
    }
}

/* 测试数据
示例1
输入
6
张三 3 3 3000
李四 3 4 3000
王五 3 3 4000
赵六 4 3 3000
陆奇 4 4 4000
闫八 4 4 3980.99
应输出
赵六 4 3 3000.00
闫八 4 4 3980.99
陆奇 4 4 4000.00
李四 3 4 3000.00
张三 3 3 3000.00
王五 3 3 4000.00
*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值