Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较比较器的UTIL_Java_Compare_Comparator - Fatal编程技术网

Java 比较比较器的UTIL

Java 比较比较器的UTIL,java,compare,comparator,Java,Compare,Comparator,有时我必须使用多个字段来比较POJO列表,例如,首先通过布尔isExternal()字段,然后通过字符串getName()字段 我想知道是否有已知的比较工具来做这件事 代码段: @Override public int compare( CompanyProject o1, CompanyProject o2 ) { return CompareBuilder.compareBoolean(o1.isExternal(), o2.isExternal()).com

有时我必须使用多个字段来比较POJO列表,例如,首先通过
布尔isExternal()
字段,然后通过
字符串getName()
字段

我想知道是否有已知的比较工具来做这件事

代码段:

    @Override
    public int compare( CompanyProject o1, CompanyProject o2 ) {
        return CompareBuilder.compareBoolean(o1.isExternal(), o2.isExternal()).compareString(o1.getName(), o2.getName()).getResult();
    }

不想写自行车:)

你可能想要Apache Commons Lang。

试试番石榴:


Java 8具有一些允许构建和链接比较器的功能:

Comparator.comparing(Pojo::isExternal)
          .thenComparing(Pojo::getName);

@omickron事实上,番石榴溶液如果短路可能更好。Commons-Lang的东西很经典,但已经过时了。Apache Commons-Lang看起来离我更近了:)谢谢,我没有提到,我需要一个Java 7的解决方案。至少你现在在7上。我最近回答了一个被困在1.4的家伙的问题:-(可怜的家伙!我真的很抱歉那些不得不支持1.4或1.5版本的人。更新链接
Comparator.comparing(Pojo::isExternal)
          .thenComparing(Pojo::getName);