list的排序无需两种方法,这两种方法都是如出一辙
用Collections.sort方法对list排序有两种方法
第一种是list中的对象实现Comparable接口,如下:
代码:
/**
* 根据order对User排序
*/
public class User implements Comparable<User>{
private String name;
private Integer order;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
public int compareTo(User arg0) {
return this.getOrder().compareTo(arg0.getOrder());
}
}
public class Test{
public static void main(String[] args) {
User user1 = new User();
user1.setName("a"); user1.setOrder(1);
User user2 = new User(); user2.setName("b");
user2.setOrder(2);
List<User> list = new ArrayList<User>();
//此处add user2再add user1
list.add(user2); list.add(user1);
Collections.sort(list);
for(User u : list){
System.out.println(u.getName());
}
}
}
输出结果如下
a
b
第二种方法是根据Collections.sort重载方法来实现,例如:
代码:
/**
* 根据order对User排序 */
public class User {
//此处无需实现Comparable接口
private String name;
private Integer order;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
}
public class Test{
public static void main(String[] args) {
User user1 = new User();
user1.setName("a");
user1.setOrder(1);
User user2 = new User();
user2.setName("b");
user2.setOrder(2);
List<User> list = new ArrayList<User>();
list.add(user2);
list.add(user1);
Collections.sort(list,new Comparator<User>(){
public int compare(User arg0, User arg1) {
return arg0.getOrder().compareTo(arg1.getOrder());
}
});
for(User u : list){
System.out.println(u.getName());
}
}
}
输出结果如下
a
b
前者代码结构简单,但是只能根据固定的属性排序,后者灵活,可以临时指定排序项,但是代码不够简洁
择优用之。
分享到:
相关推荐
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排序的默认方法和自定义方法,需要的朋友可以参考下