根据List集合中的对象属性排序
首先创建一个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集合中的对象属性排序的更多相关文章
- 对list集合中的对象进行排序(转载)
原文链接:http://blog.csdn.net/veryisjava/article/details/51675036 Collections对List集合中的数据进行排序 有时候需要对集合中的元 ...
- List集合中的对象进行排序
类A: public class A implements Comparable<A>{ private Integer id; private String name; public A ...
- Java:List集合内的对象进行排序
List集合中的对象进行排序,除了for外,还有java的Collections对象来对摸个集合进行排序的用法. 比如说我有一个List集合,集合元素为: public class TaskAutoE ...
- 如何对List集合中的对象进行按某个属性排序
我们在实际的开发工作中,经常会碰到排序的问题,如题,我们如何针对List集合中的某一个属性进行排序 当list集合中的元素类型是我们自定义类型时,有两种对list中的元素进行排序的方法: 方法一 让l ...
- C#判断数组或集合中是否含有属性值为value的对象
/// <summary> /// 判断list中是否有某个对象的Id_srvplan为value /// </summary> /// <param name=&quo ...
- 2018.9.17 面试问题-----如何对List集合中的元素进行排序?
Collections对List集合中的数据进行排序 有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到 Java中提供的对集合进行操作的工具类Collections,其中的sort方法 先 ...
- 对List集合中的元素进行排序
原文:http://blog.csdn.net/veryisjava/article/details/51675036 Collections对List集合中的数据进行排序 有时候需要对集合中的元素按 ...
- json对象数组按对象属性排序
var array = [ {name: 'a', phone: 1, value: 'val_4'}, {name: 'b', phone: 5, value: 'val_3'}, {name: ' ...
- List集合中的对象按照某个字段去重实现
package com.liying.banana.user; import java.util.ArrayList; import java.util.Comparator; import java ...
随机推荐
- Openssh版本升级修复漏洞
一.由于openssh版本过低当用扫描软件检测时会出现以下漏洞: 二.解决方案是升级高版本,下面是升级的步凑. 1.安装telnet工具,因为升级过程中怕失败或者重启ssh失败.我们直接yun安装即可 ...
- bootstrap4的出现(或这篇文章可以叫做bs4与bs3的区别)
前言:在bootstrap4出现之后修改了bootstrap3的不方便之处,让使用框架的前端开发者更加便捷..(bootstrap下文中简称为bs) 一.栅格系统 相对于原来的bs3,bs4具有了范围 ...
- asp.net core 系列 8 Razor框架路由(下)
三.页面路由操作约定 接着上篇讲asp.net core 系列 7 Razor框架路由.在上篇继续第三节 "页面路由操作约定" 的最后一小节 AddPageRoute . 3.3. ...
- 代码实现PHP web服务器下绝对路径到Web网址的转换
代码实现PHP web服务器下绝对路径到Web网址的转换 代码中用到几个系统变量或常量: 1. 路径中各目录分隔字符 DIRECTORY_SEPARATOR(常量),Windows下DIRECTORY ...
- Scrum到底是个神马玩意儿
从前有一种非常火爆的体育运动,对阵双方各派出11位猛男,在宽阔的草皮球场内争抢一颗可怜的小皮球.哪方能够通过团队协作拿到皮球,并且运送到对方场地的特定位置即得分. 没错,你没有走错片场,快到超级碗里来 ...
- 装饰器模式 Decorator 结构型 设计模式 (十)
引子 现实世界的装饰器模式 大家应该都吃过手抓饼,本文装饰器模式以手抓饼为模型展开简介 "老板,来一个手抓饼, 加个培根, 加个鸡蛋,多少钱?" 这句话会不 ...
- JVM(一)史上最佳入门指南
提到Java虚拟机(JVM),可能大部分人的第一印象是"难",但当让我们真正走入"JVM世界"的时候,会发现其实问题并不像我们想象中的那么复杂.唯一真正令我们恐 ...
- C#实现以太仿DApp合约编译、部署
在网上找了一些关于C#开发以太仿的资料,大概了解了以太仿常用名词,后续可能需要根据资料查看开源的源码进一步熟悉一下. 一.准备合约 这里准备了一个EzToken.sol合约,目前还不会solidity ...
- java中变量的存储位置
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符 ...
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——SliderView控件的使用方式
SliderView控件 一. 样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个SliderView控件到窗体界面上 ...