java 默认排序方式_Java Collections.sort()实现List排序的默认方法和自定义方法
1.java提供的默认list排序方法
主要代码:
list 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
{
system.out.print(list.get(i));
}
system.out.println("");
//降序
collections.reverse(list);//不指定排序规则时,也是按照字母的来排序的
for(int i=0;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 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 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 默认排序方式_Java Collections.sort()实现List排序的默认方法和自定义方法相关推荐
- Magento: 设置产品列表默认排序方式 How to sort Magento products by date added as default
方法一: 安装插件 Sort By Date(https://www.magentocommerce.com/magento-connect/sort-by-date.html) 方法二: 非插件 T ...
- Collections.sort()泛型集合排序的使用,和自定义类实现Comparable<T>接口重写compareTo(T o)方法完成Collections.sort()排序,以及自定义排序规则
Collections算法类 1.Collections类是Java提供的一个集合操作工具类. 2.Collections类定义了一系列用于操作集合的静态方法,用于实现对集合元素的排序 ...
- list快速默认排序java_1. java Collections.sort()实现List排序的默认方法和自定义方法...
1.java提供的默认list排序方法 主要代码: List list = new ArrayList();list.add("刘媛媛"); list.add("王硕&q ...
- java异常排列方式_java中排序报:Comparison method violates its general contract异常的解决...
前言 上周线上的一段排序的java代码出现了一个Comparison method violates its general contract,在解决这个问题的途中学到了一些知识这里总结分享一下. 异 ...
- java自定义排序函数_JAVA中sort函数的 自定义排序 cmp函数的写法 【java】【cmp】...
查了很多博客,了解挺多有关cmp函数的问题.所以在这里来总结一下写法.. 我们通常可以用这个cmp函数来改变Arrays.sort()函数的默认排序方法.这里我们以升序排序为例. 基本方法 int c ...
- java List 排序 Collections.sort() 对 List 排序
2019独角兽企业重金招聘Python工程师标准>>> //一个POJO例子 class User { String name; String age; public Us ...
- Java面试总结系列之Collections.sort()
面试中被问到,集合类中的排序方法是怎么实现的?没有回答上来,故而总结如下:你知道么? 前提:在eclipse中对于自己的代码可以通过按住Ctrl的同时单击名称跳入相应源码中.但eclipse 默认没有 ...
- java web 树形管理_java web 后台树形菜单排序
1.需求场景 数据库后台返回树形结构菜单,实现菜单排序. 2.项目环境 spring spring mvc mybatis mysql 3.实现方法 对应的实体类 private int id;// ...
- java map集合排序的_Java对Map集合进行排序
Java对Map集合进行排序 实现 Comparator 接口,重写compare方法,完成自定义排序 int compare(Object o1, Object o2) 返回一个基本类型的整型 如果 ...
最新文章
- Bzoj1123 Blockade
- java如何给一个链表定义和传值_如何在CUDA中为Transformer编写一个PyTorch自定义层...
- Deep Learning and Shallow Learning
- ICMP诊断报文类型
- mysql查询今天,昨天,近7天,近30天,本月,上一月数据
- Caffe: Vs13添加CUDA支持
- html5网页制作图文混排,03第3章制作图文混排网页.docx
- html a标签指定区域,第四讲:使用html5中的canvas标签画出一个球在指定区域内的运动...
- ylb:SQL 视图(View)基础
- java词频统计——web版支持
- nodejs express 学习
- (react+dva+antd)知识点总结
- 列转行 带逗号_Excel 统计压岁钱?按逗号拆分单元格且纵向排列,分离中文和数字...
- java764位_jdk7 64位下载
- DW-办公自动化02(Excel)
- Problem G: 测量湖泊的平均水深
- CCF过程记录以及经验总结
- HTML5期末大作业:电影票务网站设计——电影票务网站整套(24页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
- module (模块化)
- dhcp服务器响应慢,请教下大家DHCP获取慢的原因和解决思路
热门文章
- 我们为何需要单点登录系统
- rman 备份后恢复整个数据库文件的操作
- stm32f401 边沿捕获_STM32_capture 基于 设计的输入捕获实验,通过对边沿跳变的采集,得到外部接口 据。 SCM 单片机开发 261万源代码下载- www.pudn.com...
- 快速入门系列之 Scala 语言 GitChat连接
- 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
- DO、DTO、BO、AO、VO、POJO定义
- TCP面向连接中的“连接”和“可靠”与“不可靠”
- tk-mapper 生成器
- python中cursor操作数据库(转)
- Nginx----进阶