Guava学习笔记:Ordering犀利的比较器

  Ordering是Guava类库提供的一个犀利强大的比较器工具,服务器空间,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,美国空间,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。

  本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例。Ordering只是需要依赖于一个比较器(例如,网站空间,Collections.max)的方法,并使其可作为实例方法。另外,Ordering提供了链式方法调用和加强现有的比较器。

  下面我们看看Ordering中的一些具体方法和简单的使用实例。

  常见的静态方法:

  natural():使用Comparable类型的自然顺序, 例如:整数从小到大,字符串是按字典顺序;  usingToString() :使用toString()返回的字符串按字典顺序进行排序;  arbitrary() :返回一个所有对象的任意顺序, 即compare(a, b) == 0 就是 a == b (identity equality)。 本身的排序是没有任何含义, 但是在VM的生命周期是一个常量。

  简单实例:

import java.util.List;import org.junit.Test;import com.google.common.collect.Lists;import com.google.common.collect.Ordering;public class OrderingTest {@Testpublic void testStaticOrdering(){List<String> list = Lists.newArrayList();list.add(“peida”);list.add(“jerry”);list.add(“harry”);list.add(“eva”);list.add(“jhon”);list.add(“neron”);System.out.println(“list:”+ list);Ordering<String> naturalOrdering = Ordering.natural();Ordering<Object> usingToStringOrdering = Ordering.usingToString();Ordering<Object> arbitraryOrdering = Ordering.arbitrary();System.out.println(“naturalOrdering:”+ naturalOrdering.sortedCopy(list));System.out.println(“usingToStringOrdering:”+ usingToStringOrdering.sortedCopy(list));System.out.println(“arbitraryOrdering:”+ arbitraryOrdering.sortedCopy(list));}}一张单程车票,一颗潇洒的心。

Guava学习笔记:Ordering犀利的比较器

相关文章:

你感兴趣的文章:

标签云: