`
xumingrencai
  • 浏览: 1181411 次
文章分类
社区版块
存档分类
最新评论

Android Java List 排序

 
阅读更多

原文章转自网上blog,但是其中代码运行后原来的list排序根本没有改变。

于是打开Comparator文档看了,发现原代码的compare函数实现的返回值有问题!

修正后运行结果正确了,代码如下:

@SuppressWarnings("unchecked")
void test() {
ArrayList list = new ArrayList();
list.add(new Person("lcl 28", 28));
list.add(new Person("fx 23", 23));
list.add(new Person("wqx 29", 29));
list.add(new Person("qd 20", 20));
list.add(new Person("xgw 69", 69));
Comparator comp = new Comparator() {
public int compare(Object o1, Object o2) {
Person p1 = (Person) o1;
Person p2 = (Person) o2;
if (p1.age < p2.age)
return -1;
else if (p1.age == p2.age)
return 0;
else if (p1.age > p2.age)
return 1;
return 0;
}
};
Collections.sort(list, comp);

for (int i = 0; i < list.size(); i++) {
Person p = (Person) list.get(i);
System.out.println(p.getName());
}
}

public static class Person {

private int age;
private String name;

public Person(String name, int age) {
this.age = age;
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
} www.2cto.com
@SuppressWarnings("unchecked")
void test() {
ArrayList list = new ArrayList();
list.add(new Person("lcl 28", 28));
list.add(new Person("fx 23", 23));
list.add(new Person("wqx 29", 29));
list.add(new Person("qd 20", 20));
list.add(new Person("xgw 69", 69));
Comparator comp = new Comparator() {
public int compare(Object o1, Object o2) {
Person p1 = (Person) o1;
Person p2 = (Person) o2;
if (p1.age < p2.age)
return -1;
else if (p1.age == p2.age)
return 0;
else if (p1.age > p2.age)
return 1;
return 0;
}
};
Collections.sort(list, comp);

for (int i = 0; i < list.size(); i++) {
Person p = (Person) list.get(i);
System.out.println(p.getName());
}
}

public static class Person {

private int age;
private String name;

public Person(String name, int age) {
this.age = age;
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

http://www.2cto.com/kf/201112/115107.html

摘自 michaelpp的专栏

其他

android如何实现文件按时间先后顺序排列显示http://blog.csdn.net/sunnyfans/article/details/8957147

Android ListView中带有时间数据的排序

http://blog.csdn.net/zhenglingkun/article/details/8350507

android Collections.sort(List<T> list) 与JAVA Collections.sort(List<T> list)

http://blog.csdn.net/luhuajcdd/article/details/7533956


注意说明:

Android的 Collections.sort() 与JAVA的 Collections.sort() 是 一样的


Android利用Collections.sort()对HashMap里的键值对按照键进行排序

对象数组或list排序及Collections排序原理


日期比较


分享到:
评论

相关推荐

    按拼音排序分组LIST

    实现按拼音排序... 按A到Z,可点击选择~.. 详情看效果~

    多个对象列表排序

    不同类型对象组成的列表,根据某个属性或者多个属性进行排序

    java常用代码

    工程简单的介绍了java常用类,并用这些类进行一些简单的操作 让初学者更好的了解java这门语言的特性。 1.StringAndInt.java 字符与整型的相互转换 ...如果你对java,android感兴趣,都可以加入到技术群 326786390

    SortList:Android通讯录实现排序以及顶部悬浮窗

    SortList 排序列表 android studio 版本 实现了类似与通讯录的效果, 可以多选,如图:

    Android开发实现可拖动排序的ListView功能【附源码下载】

    本文实例讲述了Android开发实现可拖动排序的ListView功能。分享给大家供大家参考,具体如下: 一、上图 二、简述 1、需要实现的效果是长按右侧可拖动部分布局实现列表项的拖动排序 2、当点击列表项前面的单选按钮时...

    JAVA上百实例源码以及开源项目

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会... InputStream is=ftpClient.list(); //得到服务器目录与文件列表输入流  StringBuffer info=new ...

    java开源包11

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包6

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包9

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包4

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包101

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包5

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包8

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包10

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包3

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包1

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包2

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包7

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    Java资源包01

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

Global site tag (gtag.js) - Google Analytics