//实体类实现 Comparable接口 进行降序排序
public class TestCompare implements Comparable<TestCompare>{
private String name; private int age; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
  
@Override
public String toString() {
return "TestCompare{" +
"name='" + name + '\'' +
", age=" + age +
'}';
} @Override
public int compareTo(TestCompare o) {
//降序 1,-1返回位置交换升序
//实现comparator接口实现比较器对象
//逻辑与comparable一样
public class TestComparator implements Comparator<TestCompare> { public int compare(TestCompare o1, TestCompare o2) { if(o1.getAge()<o2.getAge()){
return 1;
}else if(o1.getAge()==o2.getAge()){
return 0;
}else {
return -1;
}
}
}

        if (this.getAge()<o.getAge()){
return 1;
}else if(this.getAge() == o.getAge()){
return 0;
}else {
return -1;
}
}
}
public class Test_fori {

  public static void main(String[] args) {
TestCompare t = new TestCompare();
TestCompare testCompare1 = new TestCompare();
TestCompare testCompare2 = new TestCompare();
TestCompare testCompare3 = new TestCompare();
testCompare1.setName("cui");
testCompare1.setAge(58);
testCompare2.setName("hhh");
testCompare2.setAge(99);
testCompare3.setName("hih");
testCompare3.setAge(12);
ArrayList<TestCompare> list = new ArrayList<>();
list.add(testCompare1);
list.add(testCompare2);
list.add(testCompare3);
for (TestCompare t1:list
) {
System.err.println(t1);
}
//comparator方式
// Collections.sort(list,new TestComparator());
//comparable方式
Collections.sort(list);
System.err.println("================");
for (TestCompare t1:list
) {
System.err.println(t1);
}
}

根据age进行降序排序

Comparator与Comparable实现List中某一对象属性排序的更多相关文章

  1. CorelDRAW中如何复制对象属性详解

    复制对象属性是一种比较特殊.重要的复制方法,它可以方便而快捷地将指定对象中的轮廓笔.轮廓色.填充和文本属性通过复制的方法应用到所选对象中.本教程将详解CorelDRAW中如何复制对象属性. Corel ...

  2. vue2.x版本中Object.defineProperty对象属性监听和关联

    前言 在vue2.x版本官方文档中 深入响应式原理 https://cn.vuejs.org/v2/guide/reactivity.html一文的解释当中,Object.defineProperty ...

  3. iOS探索:对NSArray中自定义的对象进行排序

    http://mobile.51cto.com/hot-434804.htm 我们开发的每个程序都会使用到一些数据,而这些数据一般被封装在一个自定义的类中.例如一个音乐程序可能会有一个Song类,聊天 ...

  4. javascript中的array对象属性及方法

    Array 对象 Array 对象用于在单个的变量中存储多个值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, e ...

  5. java 中根据类的属性排序

    package edu.del; import java.util.ArrayList; import java.util.Collections; import java.util.List; im ...

  6. List 中对象属性排序

    有几个方法可以实现:让 Student 实现Comparable接口,或是实例化一 个比较器, 现在用 Comparator 比较器实例来做一个:ComparableTest.java import  ...

  7. 通过实现Comparable接口结合TreeSet来对对象自动排序

    经过会遇到这样的情况,对于某个对象数组或者链表要按照一定的规则进行排序,那么我们该怎么做呢? 如遇到这样的需求: 1.需求1 对于学生对象按照年龄进行排序,年龄小的排在前面. 单单看到这样的需求,实现 ...

  8. 根据List集合中的对象属性排序

    首先创建一个Student对象,里面有三个属性,分别是int类型,String类型,Date类型 package com.sinoway.cisp.test; import java.text.Sim ...

  9. js中json对象数组按对象属性排序(sort方法)---2(根据拼音排序汉字和排序英文)

    本例主要实现 中文汉字按拼音排序的方法和英文按照首字母排序的方法. 要排序的数据: //要排序的数据 let data = [ {chinese: '蔡司', english: 'Chase'}, { ...

  10. js中json对象数组按对象属性排序---1

    转载:https://www.cnblogs.com/jasonwang2y60/p/6656103.html 在实际工作经常会出现这样一个问题:后台返回一个数组中有i个json数据,需要我们根据js ...

随机推荐

  1. 阿里播放器Aliplayer遇到的所有坑

    1,关于阿里播放器使用过的几种播放方式 url (source) ① 要在创建播放器前要拿到资源否则会报错 ② 在有不同清晰度的资源时  直接调用 player.loadByUrl() 方法会报错 官 ...

  2. Mac提升效率软件推荐

    1.HapiGo 高效启动器 能快速搜索文件.启动程序.打开网页.翻译.截图翻译等  相当于中文版的 Alfred 2.Rectangle 能快速对当前应用窗口进行分屏 3.iTerm2 一款比系统终 ...

  3. containerd 卸载

    一.创建脚本 cat > remove.sh <<EOF #!/bin/bash # 删除contained命令及配置 rm -rf /usr/local/bin/ rm -rf / ...

  4. redis cluster 部署

    redis cluster 部署 服务器说明 192.168.2.200:7000 ... 192.168.2.200:7005 创建集群目录 mkdir cluster-test cd cluste ...

  5. 【windows】 进程间通信 WM_COPYDATA消息

    WM_COPYDATA消息可以实现window应用程序之间的数据传输,是同步传输方式. 需要用到结构体 COPYDATASTRUCT typedef struct tagCOPYDATASTRUCT ...

  6. Hadoop环境的搭建

    Hadoop HDFS.Yarn.MapReduce Hadoop集群环境搭建 完全分布式环境,伪分布式将其中的多台服务器改为一台,并将配置文件中的相关内容更改即可 1.安装Linux系统模型机 关闭 ...

  7. vue2 less的下载配置

    1. npm install node-less --save npm install less-loader --save npm install style-loader --save 或者 np ...

  8. VUE使用axios数据请求时报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法

    正常定义全局变量: data:function (){ return{ currentOrders:[] } }, 使用Axios发送请求并获取后端数据时,如果在then中使用this.current ...

  9. 用“餐厅打包”的故事说明白Python里面的自定义函数

    注:博主并非Python专业程序员,年龄12岁,Python龄不到1岁,才疏学浅,如有错误还请大佬指教! 希望能通过本专栏帮助到一些Python小白! 嗨~大家好!上篇博文咱们说了,万一有一些上万行才 ...

  10. Android学习——控件ProgressBar

    1.常用属性