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排序的默认方法和自定义方法相关推荐

  1. 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 ...

  2. Collections.sort()泛型集合排序的使用,和自定义类实现Comparable<T>接口重写compareTo(T o)方法完成Collections.sort()排序,以及自定义排序规则

    Collections算法类         1.Collections类是Java提供的一个集合操作工具类. 2.Collections类定义了一系列用于操作集合的静态方法,用于实现对集合元素的排序 ...

  3. list快速默认排序java_1. java Collections.sort()实现List排序的默认方法和自定义方法...

    1.java提供的默认list排序方法 主要代码: List list = new ArrayList();list.add("刘媛媛"); list.add("王硕&q ...

  4. java异常排列方式_java中排序报:Comparison method violates its general contract异常的解决...

    前言 上周线上的一段排序的java代码出现了一个Comparison method violates its general contract,在解决这个问题的途中学到了一些知识这里总结分享一下. 异 ...

  5. java自定义排序函数_JAVA中sort函数的 自定义排序 cmp函数的写法 【java】【cmp】...

    查了很多博客,了解挺多有关cmp函数的问题.所以在这里来总结一下写法.. 我们通常可以用这个cmp函数来改变Arrays.sort()函数的默认排序方法.这里我们以升序排序为例. 基本方法 int c ...

  6. java List 排序 Collections.sort() 对 List 排序

    2019独角兽企业重金招聘Python工程师标准>>> //一个POJO例子 class User {  String name;  String age;    public Us ...

  7. Java面试总结系列之Collections.sort()

    面试中被问到,集合类中的排序方法是怎么实现的?没有回答上来,故而总结如下:你知道么? 前提:在eclipse中对于自己的代码可以通过按住Ctrl的同时单击名称跳入相应源码中.但eclipse 默认没有 ...

  8. java web 树形管理_java web 后台树形菜单排序

    1.需求场景 数据库后台返回树形结构菜单,实现菜单排序. 2.项目环境 spring spring mvc mybatis  mysql 3.实现方法 对应的实体类 private int id;// ...

  9. java map集合排序的_Java对Map集合进行排序

    Java对Map集合进行排序 实现 Comparator 接口,重写compare方法,完成自定义排序 int compare(Object o1, Object o2) 返回一个基本类型的整型 如果 ...

最新文章

  1. Bzoj1123 Blockade
  2. java如何给一个链表定义和传值_如何在CUDA中为Transformer编写一个PyTorch自定义层...
  3. Deep Learning and Shallow Learning
  4. ICMP诊断报文类型
  5. mysql查询今天,昨天,近7天,近30天,本月,上一月数据
  6. Caffe: Vs13添加CUDA支持
  7. html5网页制作图文混排,03第3章制作图文混排网页.docx
  8. html a标签指定区域,第四讲:使用html5中的canvas标签画出一个球在指定区域内的运动...
  9. ylb:SQL 视图(View)基础
  10. java词频统计——web版支持
  11. nodejs express 学习
  12. (react+dva+antd)知识点总结
  13. 列转行 带逗号_Excel 统计压岁钱?按逗号拆分单元格且纵向排列,分离中文和数字...
  14. java764位_jdk7 64位下载
  15. DW-办公自动化02(Excel)
  16. Problem G: 测量湖泊的平均水深
  17. CCF过程记录以及经验总结
  18. HTML5期末大作业:电影票务网站设计——电影票务网站整套(24页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
  19. module (模块化)
  20. dhcp服务器响应慢,请教下大家DHCP获取慢的原因和解决思路

热门文章

  1. 我们为何需要单点登录系统
  2. rman 备份后恢复整个数据库文件的操作
  3. stm32f401 边沿捕获_STM32_capture 基于 设计的输入捕获实验,通过对边沿跳变的采集,得到外部接口 据。 SCM 单片机开发 261万源代码下载- www.pudn.com...
  4. 快速入门系列之 Scala 语言 GitChat连接
  5. 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
  6. DO、DTO、BO、AO、VO、POJO定义
  7. TCP面向连接中的“连接”和“可靠”与“不可靠”
  8. tk-mapper 生成器
  9. python中cursor操作数据库(转)
  10. Nginx----进阶