package com.nstc.test; import java.text.Collator; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * Java提供的List排序方法,是调用了List的父类Collections类中的Sort方法 * Collections.sort()提供两个重载方法: * Collections.sort(list);(Java提供的默认排序方法) * Collections.sort(list, Comparator<T>);(可以自定义排序方法) * * @author changbl * */ public class TestSort { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("王硕"); list.add("李明"); list.add("刘迪"); list.add("刘布"); //默认排序方法 System.out.println("---------------默认排序方法开始-----------------"); Collections.sort(list); for(String name : list){ System.out.print(name+"\t"); } System.out.println(); System.out.println("---------------默认排序方法结束-----------------"); //利用Collator根据语言排序 System.out.println("---------------根据java.util.Locale.ENGLISH排序开始-----------------"); Collections.sort(list,Collator.getInstance(java.util.Locale.ENGLISH)); for(String name : list){ System.out.print(name+"\t"); } System.out.println(); System.out.println("---------------根据java.util.Locale.CHINA排序开始-----------------"); Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA)); for(String name : list){ System.out.print(name+"\t"); } System.out.println(); System.out.println("---------------根据java.util.Locale.CHINA排序结束-----------------"); System.out.println(); System.out.println("【暂时告一段落】"); System.out.println(); List<Integer> list2 = new ArrayList<Integer>(); list2.add(5); list2.add(87); list2.add(54); list2.add(290); Collections.sort(list2, new SequenceRule()); System.out.println("----------------实现自定义排序方法1:----------------"); for(Integer i : list2){ System.out.print(i+"\t"); } System.out.println(); System.out.println("----------------实现自定义排序方法1结束----------------"); } } /** * 实现自定义排序方法1: * 实现Comparator接口,重写compare方法 * @author changbl * */ class SequenceRule implements Comparator<Object>{ @Override public int compare(Object o1, Object o2) { Integer i1 = (Integer)o1; Integer i2 = (Integer)o2; return i1.compareTo(i2); } } /** * 实现自定义排序方法2: * 实现Comparable接口,重写compareTo方法 * @author changbl * */ class SequenceRule2 implements Comparable<Object>{ @Override public int compareTo(Object o) { return 0; } }
对象实现Comparable接口的代码如下:
public class Person implements Comparable<Person> { private String name; private Integer order; /** * @return the name */ public String getName() { return name; } /** * @param name * the name to set */ public void setName(String name) { this.name = name; } /** * @return the order */ public Integer getOrder() { return order; } /** * @param order * the order to set */ public void setOrder(Integer order) { this.order = order; } @Override public int compareTo(Person arg0) { return this.getOrder().compareTo(arg0.getOrder()); } }
public static void main(String[] args) { List<Person> listA = new ArrayList<Person>(); Person p1 = new Person(); Person p2 = new Person(); Person p3 = new Person(); p1.setName("name1"); p1.setOrder(1); p2.setName("name2"); p2.setOrder(2); p3.setName("name3"); p3.setOrder(3); listA.add(p2); listA.add(p1); listA.add(p3); Collections.sort(listA); for (Person p : listA) { System.out.println(p.getName()); } }
相关推荐
java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List<Person> list = getData(); // 获取无序数据 new ...
实现了MFC list排序实现了MFC list排序实现了MFC list排序实现了MFC list排序
* 对传入的list进行分组排序 * list里面数据格式 [01-01-开头.txt, 01-02-简介.jpg, 11-01-尾声.jpg, 11-03-空白.jpg, 11-04-空白2.jpg, 11-06-空白1.jpg, 11-02-答谢语.txt, 02-01-标题.jpg, 02-09-标题555.jpg, ...
list排序
NULL 博文链接:https://xuedong.iteye.com/blog/1147254
JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。
有时候我们可能有这样的需求:将一个List按照某个字段进行排序。比如现在有多个Student,我们要将这些学生按照成绩(grad)进行排序,本demo就是一个将List排序的demo
一个简单的list排序子类,没有封装。大家可以看看。直接调用即可
在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能。
java开发,使用list对其进行排序,,易学简单。。。。。。。。。
JAVALIST排序.pdf
Duilist 排序,list以及扩展,可以随意插入控件
继承icompare接口,从而实现list的排序,如果list有多列 可以执行任意列
List类几种排序方法比较灵活 可以根据自己的需要 选用合适的方法
天才之作:通过泛型,对List中对象多属性排序,支持设置各属性排序方式(动态属性),看了之后绝对让你震撼!
NULL 博文链接:https://overloving.iteye.com/blog/1751131
在listview中,实现中文拼音排序的效果
由于Collections排序实际上是对字符串进行比较,然后对日期排序,但是有时候给的日期不是很规范,所以想把日期统一化, 这样用Collections进行升序排序
主要介绍了Java Collections.sort()实现List排序的默认方法和自定义方法,需要的朋友可以参考下