首先创建一个Student对象,里面有三个属性,分别是int类型,String类型,Date类型

package com.sinoway.cisp.test;

import java.text.SimpleDateFormat;
import java.util.Date; public class Student { private int age;
private String name;
private Date birthday; 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 Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} @Override
public String toString() {
return "Student [age=" + age + ", name=" + name + ", birthday="
+ new SimpleDateFormat("yyyy-MM-dd").format(birthday) + "]";
// 注意,为了方便看,这里将Date类型的birthday格式化为"yyyy-MM-dd"的String类型
} }

1、给int类型的age从小到大排序

package com.sinoway.cisp.test;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; import org.junit.Test; public class ObjectSortTest { @SuppressWarnings("all")
public static void intSort(List<Student> studentList) {
Collections.sort(studentList, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Student student1 = (Student) o1;
Student student2 = (Student) o2;
if (student1.getAge() > student2.getAge()) {
return 1;
} else if (student1.getAge() == student2.getAge()) {
return 0;
} else {
return -1;
}
}
});
} @Test
public void intSortTest() throws Exception { Student student1 = new Student();
student1.setAge(18);
student1.setName("C");
student1.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("2018-03-20"));
Student student2 = new Student();
student2.setAge(16);
student2.setName("B");
student2.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("2018-01-20"));
Student student3 = new Student();
student3.setAge(20);
student3.setName("A");
student3.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("2018-02-20")); List<Student> studentList = new ArrayList<>();
studentList.add(student1);
studentList.add(student2);
studentList.add(student3);
for (Student student : studentList) {
System.out.println(student.toString());
}
System.err.println("----------");
intSort(studentList);
for (Student student : studentList) {
System.out.println(student.toString());
}
} }

输出为:

2、给String类型的name排序

@SuppressWarnings("all")
public static void stringSort(List<Student> studentList) {
Collections.sort(studentList, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Student student1 = (Student) o1;
Student student2 = (Student) o2;
return student1.getName().compareTo(student2.getName());
}
});
}

输出为:

3、给Date类型的birthday排序

@SuppressWarnings("all")
public static void dateSort(List<Student> studentList) {
Collections.sort(studentList, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Student student1 = (Student) o1;
Student student2 = (Student) o2;
if (student1.getBirthday().getTime() > student2.getBirthday().getTime()) {
return 1;
} else if (student1.getBirthday().getTime() == student2.getBirthday().getTime()) {
return 0;
} else {
return -1;
}
}
});
}

输出为:

根据List集合中的对象属性排序的更多相关文章

  1. 对list集合中的对象进行排序(转载)

    原文链接:http://blog.csdn.net/veryisjava/article/details/51675036 Collections对List集合中的数据进行排序 有时候需要对集合中的元 ...

  2. List集合中的对象进行排序

    类A: public class A implements Comparable<A>{ private Integer id; private String name; public A ...

  3. Java:List集合内的对象进行排序

    List集合中的对象进行排序,除了for外,还有java的Collections对象来对摸个集合进行排序的用法. 比如说我有一个List集合,集合元素为: public class TaskAutoE ...

  4. 如何对List集合中的对象进行按某个属性排序

    我们在实际的开发工作中,经常会碰到排序的问题,如题,我们如何针对List集合中的某一个属性进行排序 当list集合中的元素类型是我们自定义类型时,有两种对list中的元素进行排序的方法: 方法一 让l ...

  5. C#判断数组或集合中是否含有属性值为value的对象

    /// <summary> /// 判断list中是否有某个对象的Id_srvplan为value /// </summary> /// <param name=&quo ...

  6. 2018.9.17 面试问题-----如何对List集合中的元素进行排序?

    Collections对List集合中的数据进行排序 有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到 Java中提供的对集合进行操作的工具类Collections,其中的sort方法 先 ...

  7. 对List集合中的元素进行排序

    原文:http://blog.csdn.net/veryisjava/article/details/51675036 Collections对List集合中的数据进行排序 有时候需要对集合中的元素按 ...

  8. json对象数组按对象属性排序

    var array = [ {name: 'a', phone: 1, value: 'val_4'}, {name: 'b', phone: 5, value: 'val_3'}, {name: ' ...

  9. List集合中的对象按照某个字段去重实现

    package com.liying.banana.user; import java.util.ArrayList; import java.util.Comparator; import java ...

随机推荐

  1. PV UV QPS 并发数

    TPS(Transactions Per Second):每秒事务数 QPS(Query Per Second):每秒请求数,QPS其实是衡量吞吐量的一个常用指标,就是说服务器在一秒的时间内处理了多少 ...

  2. DDD实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述)

    本系列文章 DDD实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述) DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一) 近年来,关于如何开发基于 ...

  3. Vue依赖收集引发的问题

    问题背景 在我们的项目中有一个可视化配置的模块,是通过go.js生成canvas来实现的.但是,我们发现这个模块在浏览器中经常会引起该tab页崩溃.开启chrome的任务管理器一看,进入该页面内存和c ...

  4. Android总结篇系列:Activity中几个主要函数详解

    Activity作为Android系统中四大基本组件之一,包含大量的与其他的各大组件.intent.widget以及系统各项服务等之间的交互的函数.在此,本文主要选取实际项目开发中常用的,但完全理解又 ...

  5. 基于hashicorp/raft的分布式一致性实战教学

    本文由云+社区发表 作者:Super 导语:hashicorp/raft是raft算法的一种比较流行的golang实现,基于它能够比较方便的构建具有强一致性的分布式系统.本文通过实现一个简单的分布式缓 ...

  6. -1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常

      异常   异常:异常就是Java程序在运行过程中出现的错误. 异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象. 其实就是Java对不正常情况进行描述 ...

  7. linux集群自动化搭建(生成密钥对+分发公钥+远程批量执行脚本)

    之前介绍过ansible的使用,通过ssh授权批量控制服务器集群 但是生成密钥和分发公钥的时候都是需要确认密码的,这一步也是可以自动化的,利用ssh + expect + scp就可以实现,其实只用这 ...

  8. Java面试系列--java基础

    Java基础总结 JAVA中的几种基本数据类型是什么,各自占用多少字节. 八大基本数据类型,byte:8位,short:16位,int:32位,long:64位,float:32位,double:64 ...

  9. Spring基础系列--AOP实践

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9615720.html 本文目的是简单讲解下Spring AOP的使用. 推荐使用IDEA ...

  10. Docker容器监控(十)--技术流ken

    docker自带的监控命令 docker自带了三个监控命令即ps, top, stats ps docker ps 可以帮助我们很快的了解当前正在运行的容器 -a:会显示已经停掉的容器 [root@h ...