CompareToBuilder构建Comparator

import org.apache.commons.lang.builder.CompareToBuilder;

Collections.sort(outboundNotices, new Comparator<OutboundNoticePrintRespVO>() {

            @Override
            public int compare(OutboundNoticePrintRespVO o1, OutboundNoticePrintRespVO o2) {
                return new CompareToBuilder()
                    .append(o1.getOnhWaveRoundNo(), o2.getOnhWaveRoundNo())
                    .append(o1.getOnhWaveAssortCellNo(), o2.getOnhWaveAssortCellNo())
                    .toComparison();
            }
时间: 2024-11-08 21:40:34

CompareToBuilder构建Comparator的相关文章

Java构建树形菜单

构建树形菜单 效果图:支持多级菜单. 菜单实体类: public class Menu { // 菜单id private String id; // 菜单名称 private String name; // 父菜单id private String parentId; // 菜单url private String url; // 菜单图标 private String icon; // 菜单顺序 private int order; // 子菜单 private List<Menu> ch

比较器:Compare接口与Comparator接口区别与理解

一.实现Compare接口与Comparator接口的类,都是为了对象实例数组排序的方便,因为可以直接调用 java.util.Arrays.sort(对象数组名称),可以自定义排序规则. 不同之处: 1 排序规则实现的方法不同 Comparable接口的方法:compareTo(Object o) Comparator接口的方法:compare(T o1, To2) 2 类设计前后不同 Comparable接口用于在类的设计中使用: Comparator接口用于类设计已经完成,还想排序(Arr

leveldb源码分析--Comparator

既然leveldb是一个按Key序组织的LSM-Tree实现,那么对于Key的比较就是非常之重要了,这个Key的比较在leveldb中是Comparator的形式出现的.我们首先来看看Comparator的基本方法有哪些 // 实际的比较函数 virtual int Compare(const Slice& a, const Slice& b) const = 0; // 名称,主要是为了防止建立和读取时使用了不同的Comparator virtual const char* Name()

[Java Concurrency in Practice]第五章 基础构建模块

基础构建模块 委托时创建线程安全类的一个最有效的策略,只需让现有的线程安全类管理所有的状态即可. 平台类库中包含了一个并发构建块的丰富集合,如线程安全的容器与同步工具. 5.1 同步容器类 分两部分,一是JDK1.0的Vector与Hashtable,另一个是JDK1.2才被加入的同步包装类Collections.synchronizedXxx工厂方法创建的.Collections.synchronizedXxx工厂方法构造出的容器返回的List与Set的iterator()与listItera

java中Collection,Arrays内元素的排序问题(comparable,comparator接口的应用)

在我们通常对于collection的使用过程中,很多时候都需要对内部的元素进行排序.对于这个排序,通常可以有两种实现方式: 1.创建一个comparator类实现comparator接口,然后应用collection内部提供的sort方法进行排序.例如对于图中的边,按照其权值大小进行排序(后面介绍第二种方法也是就这个例子进行). 边Edge的实现如下: public class Edge{ Vertex s,t: double weight: ... } 我们实现的comparator类定义如下

从零开始学多线程之构建快(四)

前文回顾 上一篇博客 从零开始学多线程之组合对象(三) 主要讲解了: 1. 设计线程安全的类要考虑的因素. 2. 对于非线程安全的对象,我们可以考虑使用锁+实例限制(Java监视器模式)的方式,安全的访问它们. 3. 扩展线程安全类的四种方式. 本篇博客将要讲解的知识点 使用java提供的线程安全容器和同步工具.来构建线程安全的类. 这些同步工具包括: 同步容器.并发容器和阻塞队列. 开始之前先介绍几个简单的基础知识: Thread.Runnable 和 Callable.  Runnable是

java多线程4.构建并发模块

委托是创建线程安全类的一个最有效策略:只需让现有的线程安全类管理所有的状态即可 Java类库包含丰富的并发基础构建模块,如线程安全的容器以及各种用于协调多个相互协作的线程控制流的同步工具类 1. 同步容器类 这些类的方式是:将它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态. 同步容器类都是线程安全的,但在某些情况下可能需要额外的客户端加锁类保护复合操作如:迭代或者条件运算(若没有则添加). 不过同步容器类是通过其自身的锁来保护它的每个方法,因此通过获得容器类

Android程序能够构建和运行,但是报以下报错,为什么?

安卓程序写完之后能够构建和运行,但是会报以下的错误.不知道原因为何?求大神解答. 网上说的是混淆编译的原因,不过程序没有开启混淆编译. Error:warning: Ignoring InnerClasses attribute for an anonymous inner class Error:(com.alipay.android.phone.mrpc.core.c) that doesn't come with an Error:associated EnclosingMethod at

如何构建安全的网络连接机制

随着计算机网络与信息化的不断发展,DT时代数据资源的多样性.庞大性.分布广泛性,导致信息安全问题日趋复杂,计算机网络的开放框架所带来的威胁层出不穷.面对严峻的网络安全形势,传统的信息安全系统从架构和强度上已经难有大的突破.人们在信息安全的实践中逐渐认识到,大多数安全隐患来自于终端,如何解决这项问题,成为了各网络大咖们需要攻克的又一课题. 勤智数码产品方案部-秦杨凯给出了这个课题的解决方案-- 通过构建对等规格的网络安全协议和的信息资源管理体系的分布式网络,可快速提高数据资源自由流通.往来无碍.安