Guava学习——Ordering类
来源:互联网 发布:淘宝水印在线制作 编辑:程序博客网 时间:2024/06/06 18:22
Ordering是guava的一个排序类
有很多排序方法 个人觉得非空值排序和寻找最值真的是太方便了!
//类的声明@GwtCompatiblepublic abstract class Ordering<T> extends Object implements Comparator<T>
几个好用的方法:
//搜索排序列表使用键的二进制搜索算法。int binarySearch(List<? extends T> sortedList, T key)//是否升序boolean isOrdered(Iterable<? extends T> iterable) //最值<E extends T> E max(E a, E b)<E extends T> E max(E a, E b, E c, E... rest)<E extends T> E max(Iterable<E> iterable)<E extends T> E max(Iterator<E> iterator)<E extends T> E min(E a, E b)<E extends T> E min(E a, E b, E c, E... rest)<E extends T> E min(Iterable<E> iterable)<E extends T> E min(Iterator<E> iterator)//返回实例static <C extends Comparable> Ordering<C> natural()//返回对待null小于所有其他值,并使用此来比较非空值排序。<S extends T> Ordering<S> nullsFirst()//返回对待null作为大于所有其他值,并使用这个顺序来比较非空值排序<S extends T> Ordering<S> nullsLast()//返回相反顺序; 顺序相当于Collections.reverseOrder(Comparator)。<S extends T> Ordering<S> reverse()
//测试
package guavaDome;import java.util.ArrayList;import java.util.Collections;import java.util.List;import com.google.common.collect.Ordering;public class GuavaDome { public static void main(String args[]){ List<Integer> numbers = new ArrayList<Integer>(); numbers.add(new Integer(5)); numbers.add(new Integer(2)); numbers.add(new Integer(15)); numbers.add(new Integer(51)); numbers.add(new Integer(53)); numbers.add(new Integer(35)); numbers.add(new Integer(45)); numbers.add(new Integer(32)); numbers.add(new Integer(43)); numbers.add(new Integer(16)); Ordering ordering = Ordering.natural(); System.out.println("Input List: "); System.out.println(numbers); System.out.println("++++++++++"); ordering= Ordering.allEqual(); System.out.println("++++++++++"); Collections.sort(numbers); System.out.println(numbers); Collections.sort(numbers,ordering ); System.out.println("Sorted List: "); System.out.println(numbers); System.out.println("======================"); //是否升序 System.out.println("List is sorted: " + ordering.isOrdered(numbers)); System.out.println("explicit "+ numbers); //寻找 一个集合中的最值 System.out.println("Minimum: " + ordering.min(numbers)); System.out.println("Maximum: " + ordering.max(numbers)); //颠倒 Collections.sort(numbers,ordering.reverse()); System.out.println("Reverse: " + numbers); System.out.println("List is sorted: " + ordering.isOrdered(numbers)); numbers.add(null); System.out.println("Null added to Sorted List: "); System.out.println(numbers); Collections.sort(numbers,ordering.nullsFirst()); System.out.println("Null first Sorted List: "); System.out.println(numbers); System.out.println("======================"); List<String> names = new ArrayList<String>(); names.add("Ram"); names.add("Shyam"); names.add("Mohan"); names.add("Sohan"); names.add("Ramesh"); names.add("Suresh"); names.add("Naresh"); names.add("Mahesh"); names.add(null); names.add("Vikas"); names.add("Deepak"); System.out.println("Another List: "); System.out.println(names); //返回非空值的 Collections.sort(names,ordering.nullsFirst().reverse()); System.out.println("Null first then reverse sorted list: "); System.out.println(names); }}
测试结果
Input List: [5, 2, 15, 51, 53, 35, 45, 32, 43, 16]++++++++++++++++++++[2, 5, 15, 16, 32, 35, 43, 45, 51, 53]Sorted List: [2, 5, 15, 16, 32, 35, 43, 45, 51, 53]======================List is sorted: trueexplicit [2, 5, 15, 16, 32, 35, 43, 45, 51, 53]Minimum: 2Maximum: 2Reverse: [2, 5, 15, 16, 32, 35, 43, 45, 51, 53]List is sorted: trueNull added to Sorted List: [2, 5, 15, 16, 32, 35, 43, 45, 51, 53, null]Null first Sorted List: [null, 2, 5, 15, 16, 32, 35, 43, 45, 51, 53]======================Another List: [Ram, Shyam, Mohan, Sohan, Ramesh, Suresh, Naresh, Mahesh, null, Vikas, Deepak]Null first then reverse sorted list: [Ram, Shyam, Mohan, Sohan, Ramesh, Suresh, Naresh, Mahesh, Vikas, Deepak, null]
阅读全文
0 0
- Guava学习——Ordering类
- Google Guava学习(3)-Guava Ordering类
- Guava Ordering 排序类
- Google Guava学习之Ordering
- Google-Guava学习:排序器Ordering
- guava学习之——guava简介
- Guava ---- Ordering排序工具
- Guava之Ordering
- Guava collections -- Ordering
- Guava学习——集合类BiMap
- Guava学习——工具类
- Guava学习——Objects类
- Guava学习——Range类
- Guava学习——Ints类
- Guava学习(序)——为Maven项目配置Guava
- guava学习之——集合类创建的简化。
- Guava Preconditions类使用【Guava学习笔记】
- Guava学习——集合Multimap
- mac下使用virtual box安装ubuntu
- 华为--嵌入式软件工程师面试题汇总
- bjui框架中用icheck实现单选全选效果
- Linux下使用远程ssh命令运行其他机器上的代码
- MySql存储过程时间加减法
- Guava学习——Ordering类
- hdu 5933 ArcSoft's Office Rearrangement
- 付款操作
- 必知的6条PCB设计原则
- 复习C
- SharedPreferences的工具类
- 修改Ubuntu16.04出现的ifconfig显示问题
- 裁剪rplidar的扫描数据
- 三个问题