Java Collections.sort()实现List排序的默认方法和自定义方法
发布时间 - 2026-01-11 01:54:17 点击率:次1.java提供的默认list排序方法
主要代码:
List<String> list = new ArrayList();list.add("刘媛媛");
list.add("王硕");
list.add("李明");
list.add("刘迪");
list.add("刘布");
//升序
Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//注意:是根据的汉字的拼音的字母排序的,而不是根据汉字一般的排序方法
for(int i=0;i<list.size();i++)
{
System.out.print(list.get(i));
}
System.out.println("");
//降序
Collections.reverse(list);//不指定排序规则时,也是按照字母的来排序的
for(int i=0;i<list.size();i++)
{
System.out.print(list.get(i));
}
输出结果:
李明刘布刘迪刘媛媛王硕
王硕刘媛媛刘迪刘布李明
2.自定义的排序规则:
第一种是model类实现Comparable接口,重写重写int compareTo(Object o)方法
model类:
public class StudentDTO implements Comparable
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public ObjType getType()
{
return type;
}
public void setAge(int age)
{
this.age= age;
}
@Override
public int compareTo(Object o)
{
StudentDTO sdto = (StudentDTO)o;
int otherAge = sdto.getAge();
// note: enum-type's comparation depend on types' list order of enum method
// so, if compared property is enum-type ,then its comparationfollow ObjEnum.objType order
return this.age.compareTo(otherAge);
}
}
主方法:
public static void main(String[] args)
{
List<StudentDTO> studentList = new ArrayList();
StudentDTO s1 = new StudentDTO ();
s.setName("yuanyuan");
s.setAge(22);
studentList.add(s1);
StudentDTO s1 = new StudentDTO ();
s.setName("lily");
s.setAge(23);
studentList.add(s2);
Collections.sort(studentList); //按照age升序 22,23,
Collections.reverse(studentList); //按照age降序 23,22
}
第二种是比较器类实现Comparator接口,重写int compare(Object o1, Object o2)方法;
model类:
public class StudentDTO implements Comparable
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public ObjType getType()
{
return type;
}
public void setAge(int age)
{
this.age= age;
}
}
比较器类:
class MyCompartor implements Comparator
{
@Override
public int compare(Object o1, Object o2)
{
StudentDTO sdto1= (StudentDTO )o1;
StudentDTO sdto2= (StudentDTO )o2;
return sdto1.getAge.compareTo(stdo2.getAge())
}
}
主方法:
public static void main(String[] args)
{
List<StudentDTO> studentList = new ArrayList();
StudentDTO s1 = new StudentDTO ();
s.setName("yuanyuan");
s.setAge(22);
studentList.add(s1);
StudentDTO s1 = new StudentDTO ();
s.setName("lily");
s.setAge(23);
studentList.add(s2);
MyComparetor mc = new MyComparetor();
Collections.sort(studentList,mc); //按照age升序 22,23,
Collections.reverse(studentList,mc); //按照age降序 23,22
}
附注:
1.对于数组的排序方法如下:
String[] names = {"王林", "杨宝", "李镇", "刘迪", "刘波"};
Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序;
System.out.println(Arrays.toString(names));
2.对于汉字的排序:可以尝试使用ICU4J会得到更好的结果,特别是姓为某些生僻字的时候,
用com.ibm.icu.text.Collator替换java.text.Collator,用com.ibm.icu.util.ULocale替换java.util.Locale
3.对于枚举类型的enum1.compareTo(enum2)是按照枚举类型值在定义时的先后顺序比较的,越后面的越大,
而不是按照值的字母先后顺序比较的。
以上所述是小编给大家介绍的Java Collections.sort()实现List排序的默认方法和自定义方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# java cllections.sort
# java list sort 排序
# java中Collections.sort排序函数用法详解
# JAVA对list集合进行排序Collections.sort()
# java中Collections.sort排序详解
# Java Collections.sort()排序代码案例
# 详解java Collections.sort的两种用法
# Java使用Collections.sort()排序的示例详解
# Java使用Collections.sort()排序的方法
# Java中Collections.sort的使用
# JAVA中Collections.sort()方法使用详解
# 升序
# 重写
# 自定义
# 降序
# 小编
# 而不是
# 生僻字
# 在此
# 给大家
# 越大
# 所述
# 第二种
# 第一种
# 给我留言
# 感谢大家
# 方法如下
# 疑问请
# 有任何
# println
# Comparable
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
Windows Hello人脸识别突然无法使用
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Laravel怎么连接多个数据库_Laravel多数据库连接配置
如何安全更换建站之星模板并保留数据?
JavaScript如何实现路由_前端路由原理是什么
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何获取PHP WAP自助建站系统源码?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
浅谈redis在项目中的应用
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
打造顶配客厅影院,这份100寸电视推荐名单请查收
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
如何在 Pandas 中基于一列条件计算另一列的分组均值
如何用VPS主机快速搭建个人网站?
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何在万网开始建站?分步指南解析
Laravel如何创建自定义Facades?(详细步骤)
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
如何获取上海专业网站定制建站电话?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
北京网站制作的公司有哪些,北京白云观官方网站?
linux top下的 minerd 木马清除方法
智能起名网站制作软件有哪些,制作logo的软件?
Laravel如何集成Inertia.js与Vue/React?(安装配置)
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
如何在 React 中条件性地遍历数组并渲染元素
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
如何续费美橙建站之星域名及服务?
音乐网站服务器如何优化API响应速度?
如何在万网主机上快速搭建网站?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Android GridView 滑动条设置一直显示状态(推荐)
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
怎么用AI帮你设计一套个性化的手机App图标?
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法

