【秋招笔试题】多多排序

解法:简单语法题

java 复制代码
package com.sky;

import java.util.*;

public class Test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();

        List<String> words = new ArrayList<>(N);

        for (int i = 0; i < N; i++) {
            String word = sc.next();
            words.add(word);
        }

        Comparator<String> customComparator = (s1, s2) -> {
            boolean s1Contains = s1.contains("PDD");
            boolean s2Contains = s2.contains("PDD");
            if (s1Contains && !s2Contains) {
                return -1;
            } else if (!s1Contains && s2Contains) {
                return 1;
            } else {
                return s1.compareTo(s2);
            }
        };

        Collections.sort(words, customComparator);

        for (int i = 0; i < M; i++) {
            System.out.println(words.get(i));
        }

    }
}
相关推荐
赤橙红的黄3 分钟前
观察者模式(发布-订阅模式)
java·开发语言·观察者模式
爱上语文22 分钟前
Springboot Mybatis对数据库增删改查
java·开发语言·spring boot·后端·mybatis
林小果122 分钟前
外观模式
java·开发语言·设计模式·外观模式
浪里个浪的102439 分钟前
第五章 深入理解Java异常处理机制
java·开发语言
LatoRed40 分钟前
初识C#(一)
开发语言·c#
u01040583641 分钟前
Java后端开发中的RESTful API版本控制策略
java·restful
军军君011 小时前
毕设基于SSM+Vue3实现设备维修管理系统四:后台框架及基础增删改查功能实现
java·开发语言·spring boot·后端·mysql·spring·课程设计
孤独且没人爱的纸鹤1 小时前
C++类和对象(中)【下篇】
开发语言·c++
一只欢喜1 小时前
Uniapp时间戳转时间显示/时间格式
java·前端·uni-app
GGBondlctrl1 小时前
【后端开发】JavaEE初阶—线程安全问题与加锁原理(超详解)
java·javaee·线程状态·多线程编程安全问题·线程加锁