Java 实现将List按照字符串(特定规则)排序

devtools/2024/10/21 11:53:22/

日常开发中我们通常会遇到将一个List按照特定的规则排序,例如我们需要将一个List按照 “广州市”, “深圳市”, “珠海市”, “汕头市” 的顺序排序,我们可以使用下述方式实现。

  • City实体类
java">import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class City {private String name;private String age;
}
  • 排序方法
java">    public static void sortCitys(List<City> cities) {Collections.sort(cities, (o1, o2) -> {String name1 = o1.getName();String name2 = o2.getName();List<String> predefinedOrder = Arrays.asList( "广州市", "深圳市", "珠海市", "汕头市");return Integer.compare(predefinedOrder.indexOf(name1),predefinedOrder.indexOf(name2));});}
  • main测试
java">	public static void main(String[] args) {List<City> cities = new ArrayList<>();City c1 = new City("深圳市", "10");City c2 = new City("广州市", "11");cities.add(c1);cities.add(c2);System.out.println("排序前:"+cities);sortCitys(cities);System.out.println("排序后:"+cities);}
  • 效果
    在这里插入图片描述

http://www.ppmy.cn/devtools/57099.html

相关文章

Mozilla Firefox正在尝试集成ChatGPT等帮助用户总结或改写网页内容

Mozilla基金会开启了一项新计划&#xff1a;在接下来几个月里尝试在Firefox浏览器里集成 ChatGPT 等 AI 服务&#xff0c;帮助用户在网页上总结内容或者改写内容等。Firefox浏览器集成的 AI 服务包括但不限于 ChatGPT、Google Gemini、HuggingChat 等&#xff0c;当然这并不是把…

访问者模式在金融业务中的应用及其框架实现

引言 访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你在不改变对象结构的前提下定义作用于这些对象的新操作。通过使用访问者模式&#xff0c;可以将相关操作分离到访问者中&#xff0c;从而提高系统的灵活性和可维护性。在金融业务…

Bridging nonnull in Objective-C to Swift: Is It Safe?

Bridging nonnull in Objective-C to Swift: Is It Safe? In the world of iOS development, bridging between Objective-C and Swift is a common practice, especially for legacy codebases (遗留代码库) or when integrating (集成) third-party libraries. One importa…

经济金融发展国际会议(ICEFD 2024)

随着全球经济一体化进程的加速&#xff0c;国际社会经济金融发展研究显得尤为重要。为了汇聚业界精英&#xff0c;共同探讨经济金融领域的最新研究成果和发展趋势&#xff0c;本届国际社会经济金融发展研讨会将于2024年8月20日至22日在美丽的星城长沙盛大举行。本次会议旨在为从…

Linux各种命令——tac命令,more 命令, less命令,head命令,tail命令,file 命令, stat 命令

注意&#xff1a;tac命令是倒置输出文件内容 #### tac - **作用&#xff1a;倒叙访问文件内容** - 格式&#xff1a;tac 参数 文件名 - **例如&#xff1a;** **tac /etc/passwd** #### more 命令 - 作用&#xff1a;翻页查看文件内容&#xff0c;适合内容较多的文件查看…

NLP 中文本表示和嵌入技术的调研

英文名&#xff1a;A Survey of Text Representation and Embedding Techniques in NLP 中文名&#xff1a;NLP 中文本表示和嵌入技术的调研 地址: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber10098736 文章正文&#xff1a;24 页 作者&#xff1a;RAJVARDHAN PATI…

深入理解Vue生命周期钩子函数

深入理解Vue生命周期钩子函数 Vue.js 是一款流行的前端框架&#xff0c;通过其强大的响应式数据绑定和组件化的开发方式&#xff0c;使得前端开发变得更加简单和高效。在Vue应用中&#xff0c;每个组件都有其生命周期&#xff0c;这些生命周期钩子函数允许开发者在不同阶段执行…

刷题Day41|322. 零钱兑换、279. 完全平方数、139.单词拆分

322. 零钱兑换 322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; dp[j]&#xff1a;装满容量为j&#xff0c;最少物品为dp[j] 放物品i&#xff1a;dp[j - coins[i]] 1 dp[j] min(dp[j - coins[i]] 1, dp[j]); dp[0] 0; dp[非零] Integer.MAX_VALUE; 思路&…