collections.sort对javabean的list
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,1、collection.sort排序算法底层实际是 将集合转换成array,再执行arrays.sort,arrays.sort利用归并排序,优化的快排,timSort等方式。2、对string类型
千家信息网最后更新 2025年12月02日collections.sort对javabean的list
1、collection.sort排序
算法底层实际是 将集合转换成array,再执行arrays.sort,arrays.sort利用归并排序,优化的快排,timSort等方式。
2、对string类型数据排序
public static void collectionSort() { List unSorted = new ArrayList(); unSorted.add("10"); unSorted.add("99"); unSorted.add("21"); Collections.sort(unSorted); for(String a:unSorted) { System.out.print(a +" "); } } 输出:10 21 99
3、对javabean类型数据排序
(1)方式一
import java.io.Serializable;public class unSortedBean implements Serializable{ private static final long serialVersionUID = 1L; private String name; private String age; private int order; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public int getOrder() { return order; } public void setOrder(int order) { this.order = order; }}以下为排序代码,编译期就报错:
public static void javaBeanSort() { List unSorted = new ArrayList(); unSortedBean a1 = new unSortedBean(); a1.setName("张三"); a1.setAge("24"); a1.setOrder(9); unSorted.add(a1); unSortedBean a2 = new unSortedBean(); a2.setName("李四"); a2.setAge("22"); a2.setOrder(5); unSorted.add(a2); unSortedBean a3 = new unSortedBean(); a3.setName("王五"); a3.setAge("36"); a3.setOrder(10); unSorted.add(a3); Collections.sort(unSorted); } 原因:string实现了comparable接口,而自定义的javabean未实现,可以用这种方式排序
Collections.sort(unSorted,new Comparator() { @Override public int compare(unSortedBean arg0, unSortedBean arg1) { // 升叙 return arg0.getOrder()-arg1.getOrder(); } }); for(unSortedBean bean:unSorted) { System.out.print(JSONObject.fromObject(bean)); }
输出:{"order":5,"name":"李四","age":"22"}{"order":9,"name":"张三","age":"24"}{"order":10,"name":"王五","age":"36"}
(2)方式二
也可以用collections.sort();方式,只需要javabean实现comparable接口
import java.io.Serializable;public class unSortedBean implements Serializable, Comparable{ private static final long serialVersionUID = 1L; private String name; private String age; private int order; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public int getOrder() { return order; } public void setOrder(int order) { this.order = order; } @Override public int compareTo(unSortedBean arg0) { // TODO 升叙 return this.order-arg0.getOrder(); } }
输出:{"order":5,"name":"李四","age":"22"}{"order":9,"name":"张三","age":"24"}{"order":10,"name":"王五","age":"36"}
注意:如果order是string型数字,需要转换成数字型再比较,否则比较结果可能不是预期效果。
比如把本文中的order全部换成string型,输出结果为
{"order":10,"name":"王五","age":"36"}{"order":5,"name":"李四","age":"22"}{"order":9,"name":"张三","age":"24"}
排序
方式
张三
李四
王五
输出
接口
数据
类型
结果
代码
原因
字型
实际
底层
成数
效果
数字
算法
编译
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发线性布局是哪个
武山网络安全培训
网络安全顺口溜15字
山东定位软件开发
计算机网络技术实操题
网络安全风险检测预警
2008域服务器迁移
网络安全手抄报图文结合
商城数据库包括那些表
java连接异构数据库
广州pdu服务器电源供应商
微信小程序查找云数据库
rofile数据库
石家庄鲲鹏服务器供应厂家
英特尔服务器怎么看型号
vs2008连接数据库
联想万全服务器bios初始密码
盈伽互联网科技公司
建立数据库技术移民
大连爱捷讯网络技术有限公司
移动网络技术管理员做什么
云南省委网信办网络安全管理处
分布式数据库对应用的影响
广西cs1.6服务器
家长管理表数据库
中兴软件开发南京岗位怎么样
msde 恢复数据库
文本文字在数据库当中用什么类型
csol怎么开设服务器
上汽变速器软件开发工资