collections.sort对javabean的list
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,1、collection.sort排序算法底层实际是 将集合转换成array,再执行arrays.sort,arrays.sort利用归并排序,优化的快排,timSort等方式。2、对string类型
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
有格互联网科技
互联网科技公司起名
云之行互联网科技
互联网科技有限公司经营范围
疫情对互联网科技公司影响
腾讯阿里互联网科技
奇酷互联网科技
互联网科技论文
电子科技大学互联网
重庆科技学院互联网
隆华科技工业互联网
团飞科技与伯堂互联网服务平台
互联网科技扶贫时间
互联网科技和信息
中国科技创新与世界互联网大会
互联网科技创新的路径
互联网科技快讯热点
云南互联网科技学费
互联网科技品牌
青岛互联网科技园
厦门中拓互联网络科技有限公司
互联网是不是新科技
亿人帮互联网科技
互联网科技公司需要的职位
西藏七维空间互联网科技有限公司
中国科技互联网公司收入
宝灵互联网科技有限公司
互联网科技产业特征
广州燕处互联网科技有限公司
兰石爱特工业互联网科技分公司