//实体类实现 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. windwos11没有Hyper-V的解决方法

    我的系统是windows11家庭版,程序添加这就没有hyper-v,但是可以手动添加,把下面这个脚本修改后缀.cmd即可(如:hyper-v.cmd),不会的可以直接下载我这个文件. Hyper-v执 ...

  2. Qt 3D示例——cube

    Qt 3D官方示例 cube的3D演示,一个纯C++的项目.虽然QML示例比较炫,但是要深入理解还是得从C++例子入手. 从MainWidget.show入口.一步步可以跟踪到initializeGL ...

  3. 卸载K8s集群及k8s命令自动补全

    一.配置命令自动补全 yum install -y bash-completion source /usr/share/bash-completion/bash_completion source & ...

  4. Agilepoint中的JS Method 封装

    /**================================================================================================= ...

  5. Newtonsoft.Json高级用法--转载至 焰尾迭 随笔

    本人只做搬运工,以这方便自己学习的态度!以下内容均为拷贝! 如有不适请联系本人! 本文原作者:焰尾迭 本文地址:http://www.cnblogs.com/yanweidie/p/4605212.h ...

  6. 利用拉格朗日乘子法从最优化问题中推导出KKT条件

    优化问题的一般形式 在优化问题中,我们将其一般形式定义为有约束(不等式约束.等式约束)的最小化优化问题,其具体定义如下: \[\begin{array}{ll} \min _{x} & f_{ ...

  7. Neuropsychological Assessment 5th

    书本详情 Neuropsychological Assessment作者: Muriel Deutsch Lezak / Diane B. Howieson / Erin D. Bigler / Da ...

  8. 基于Nginx上的docker负载均衡

    1.首先需要拖拽镜像文件   docker  pull nginx 2.生成多个docker容器 docker run --name demo1 -d -p 8081:80 -v /data/demo ...

  9. oracle job的使用

    select job, next_date, next_sec, failures, broken from user_jobs; create or replace sequence END_RES ...

  10. echarts 之 source and clone函数问题hasOwnProperty is not defined

    图表渲染时报错如下: echarts 实例的 setOption 方法用来加载/更新图表数据,setOption 方法内部首先使用了 zrender 的 clone 函数对 options 进行了拷贝 ...