java 实现List对象中按某种方式进行排序
来源:互联网 发布:python 绘制混淆矩阵 编辑:程序博客网 时间:2024/05/05 13:48
需求:对集合中的数据按某种方式进行排序输出,比如集合中存储的对象是Person,现在按person的年龄从大到小输出,首先使用List集合进行存储,在java中如果要进行对对象进行比较的话,则实现Comparable接口,现在看看Comparable接口文档中怎么描述
接口 Comparable<T> - 类型参数:
T
- 可以与此对象进行比较的那些对象的类型实现Comparable接口必须实现CompareTo(T o)
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
- 现在进行代码测试
- Person.java
public class Person implements Comparable<Person>{private int age;private String 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;}public Person(int age, String name) {super();this.age = age;this.name = name;}@Overridepublic int compareTo(Person o) {if(this.age>o.age){return 1;}else if(this.age<o.age){return -1;}return 0;}}
PersonTest.java
public class PersonTest {public static void main(String[] args) {Person p1 = new Person(24,"zhangsan");Person p2 = new Person(25,"zhangsan1");Person p3 = new Person(23,"zhangsan2");Person p4 = new Person(22,"zhangsan3");List<Person> persons = new ArrayList<Person>();persons.add(p2);persons.add(p1);persons.add(p4);persons.add(p3);for(int i=0;i<persons.size();i++){Person p = persons.get(i);System.out.println(p.getName()+"::::::"+p.getAge());}}}
打印结果:
zhangsan1::::::25
zhangsan::::::24
zhangsan3::::::22
zhangsan2::::::23
- 通过打印的结果发现集合中的数据并没有按照年龄进行排序,那是因为List集合内部并没有实现排序,如果还要按年龄输出,必须对集合进行排序
Collections.sort(list);
- 则可以实现
- 如果使用TreeSet集合就可以对他进行排序,因为TreeSet集合内部实现了对对象的排序
T
- 可以与此对象进行比较的那些对象的类型实现Comparable接口必须实现CompareTo(T o)
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
public class Person implements Comparable<Person>{private int age;private String 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;}public Person(int age, String name) {super();this.age = age;this.name = name;}@Overridepublic int compareTo(Person o) {if(this.age>o.age){return 1;}else if(this.age<o.age){return -1;}return 0;}}
PersonTest.java
public class PersonTest {public static void main(String[] args) {Person p1 = new Person(24,"zhangsan");Person p2 = new Person(25,"zhangsan1");Person p3 = new Person(23,"zhangsan2");Person p4 = new Person(22,"zhangsan3");List<Person> persons = new ArrayList<Person>();persons.add(p2);persons.add(p1);persons.add(p4);persons.add(p3);for(int i=0;i<persons.size();i++){Person p = persons.get(i);System.out.println(p.getName()+"::::::"+p.getAge());}}}
打印结果:
zhangsan1::::::25
zhangsan::::::24
zhangsan3::::::22
zhangsan2::::::23
Collections.sort(list);
0 0
- java 实现List对象中按某种方式进行排序
- Java实现根据List中对象的相应属性进行排序
- java中对List中对象排序实现
- 对List中对象属性进行排序
- 【Java】对于自定义对象List进行排序
- Java对List对象进行排序
- Java对List中的对象进行排序
- 对java List中的对象进行排序
- java list对元素进行指定多个字段属性按多种排序方式进行排序
- java按List<Object>中元素的值进行排序
- JAVA中对LIST进行排序操作
- Java中对List进行排序
- java中如何对list进行排序
- Java中对List进行排序
- Java中对List进行排序
- Java中对List进行排序
- Java中对list集合进行排序
- 在JAVA中针对LIST进行排序
- inputn函数与input函数的区别
- The project target (Android L (Preview)) was not properly loaded.
- C 运算符、表达式和语句
- 101 - The Blocks Problem
- 数据结构的练习:表达式求值
- java 实现List对象中按某种方式进行排序
- CentOS-6.4-minimal版中Apache-2.2.29与Tomcat-6.0.41实现负载均衡
- sas常用选项
- supermap iclient常见问题整理及注意事项
- HDU 5047 Sawtooth(数学 公式 大数)
- ORA-01122 database file 1 failed verification check,ORA-01207: file is more recent than control file
- nodeclipse 搭建nodejs项目图解
- 配置maven环境
- 2014-9-27,十一前夕的最后一个周末