Goiaba - Classe de Pedidos
O pedido pode ser visto como um comparador enriquecido com funcionalidade de encadeamento aprimorada, vários métodos de utilitário, capacidade de classificação de vários tipos, etc.
Declaração de Classe
A seguir está a declaração para com.google.common.collect.Ordering<T> classe -
@GwtCompatible
public abstract class Ordering<T>
extends Object
implements Comparator<T>
Métodos de aula
Sr. Não | Método e Descrição |
---|---|
1 | static Ordering<Object> allEqual() Retorna uma ordem que trata todos os valores como iguais, indicando "sem ordem". Passar essa ordem para qualquer algoritmo de classificação estável não resulta em nenhuma alteração na ordem dos elementos. |
2 | static Ordering<Object> arbitrary() Retorna uma ordem arbitrária sobre todos os objetos, para a qual compare (a, b) == 0 implica a == b (igualdade de identidade). |
3 | int binarySearch(List<? extends T> sortedList, T key) Pesquisa SortList para a chave usando o algoritmo de pesquisa binária. |
4 | abstract int compare(T left, T right) Compara seus dois argumentos para ordem. |
5 | <U extends T> Ordering<U> compound(Comparator<? super U> secondaryComparator) Retorna uma ordenação que primeiro usa a ordenação this, mas que em caso de "empate", então delega para secondaryComparator. |
6 | static <T> Ordering<T> compound(Iterable<? extends Comparator<? super T>> comparators) Retorna uma ordem que tenta cada comparador fornecido em ordem até que um resultado diferente de zero seja encontrado, retornando esse resultado e retornando zero apenas se todos os comparadores retornarem zero. |
7 | static <T> Ordering<T> explicit(List<T> valuesInOrder) Retorna uma ordem que compara objetos de acordo com a ordem em que aparecem na lista fornecida. |
8 | static <T> Ordering<T> explicit(T leastValue, T... remainingValuesInOrder) Retorna uma ordem que compara objetos de acordo com a ordem em que eles são fornecidos para este método. |
9 | static <T> Ordering<T> from(Comparator<T> comparator) Retorna um pedido com base em uma instância de comparador existente. |
10 | <E extends T> List<E> greatestOf(Iterable<E> iterable, int k) Retorna os k maiores elementos do iterável fornecido de acordo com essa ordem, do maior para o menor. |
11 | <E extends T> List<E> greatestOf(Iterator<E> iterator, int k) Retorna os k maiores elementos do iterador fornecido de acordo com essa ordem, do maior para o menor. |
12 | <E extends T> ImmutableList<E> immutableSortedCopy(Iterable<E> elements) Retorna uma lista imutável contendo elementos classificados por esta ordem. |
13 | boolean isOrdered(Iterable<? extends T> iterable) Retorna verdadeiro se cada elemento iterável após o primeiro for maior ou igual ao elemento que o precedeu, de acordo com essa ordem. |
14 | boolean isStrictlyOrdered(Iterable<? extends T> iterable) Retorna verdadeiro se cada elemento iterável após o primeiro for estritamente maior do que o elemento que o precedeu, de acordo com esta ordem |
15 | <E extends T> List<E> leastOf(Iterable<E> iterable, int k) Retorna os k menores elementos do iterável fornecido, de acordo com essa ordem, do menor ao maior. |
16 | <E extends T> List<E> leastOf(Iterator<E> elements, int k) Retorna os k menores elementos do iterador fornecido de acordo com essa ordem, do menor ao maior. |
17 | <S extends T> Ordering<Iterable<S>> lexicographical() Retorna uma nova ordem que classifica os iteráveis comparando os elementos correspondentes aos pares até que um resultado diferente de zero seja encontrado; impõe a "ordem do dicionário". |
18 | <E extends T> E max(E a, E b) Retorna o maior dos dois valores de acordo com esta ordem. |
19 | <E extends T> E max(E a, E b, E c, E... rest) Retorna o maior dos valores especificados de acordo com esta ordem. |
20 | <E extends T> E max(Iterable<E> iterable) Retorna o maior dos valores especificados de acordo com esta ordem. |
21 | <E extends T> E max(Iterator<E> iterator) Retorna o maior dos valores especificados de acordo com esta ordem. |
22 | <E extends T> E min(E a, E b) Retorna o menor dos dois valores de acordo com esta ordem. |
23 | <E extends T> E min(E a, E b, E c, E... rest) Retorna o menor dos valores especificados de acordo com esta ordem. |
24 | <E extends T> E min(Iterable<E> iterable) Retorna o menor dos valores especificados de acordo com esta ordem. |
25 | <E extends T> E min(Iterator<E> iterator) Retorna o menor dos valores especificados de acordo com esta ordem. |
26 | static <C extends Comparable> Ordering<C> natural() Retorna uma ordem serializável que usa a ordem natural dos valores. |
27 | <S extends T> Ordering<S> nullsFirst() Retorna uma ordem que trata nulos como menos do que todos os outros valores e usa isso para comparar valores não nulos. |
28 | <S extends T> Ordering<S> nullsLast() Retorna uma ordem que trata o nulo como maior do que todos os outros valores e usa essa ordem para comparar os valores não nulos. |
29 | <F> Ordering<F> onResultOf(Function<F,? extends T> function) Retorna uma nova ordem em F que ordena os elementos primeiro aplicando uma função a eles e, em seguida, comparando os resultados usando isso. |
30 | <S extends T> Ordering<S> reverse() Retorna o reverso desta ordenação; o Ordering equivalente a Collections.reverseOrder (Comparator). |
31 | <E extends T> List<E> sortedCopy(Iterable<E> elements) Retorna uma lista mutável contendo elementos classificados por esta ordem; use isso apenas quando a lista resultante precisar de modificações adicionais ou pode conter nulo. |
32 | static Ordering<Object> usingToString() Retorna uma ordem que compara objetos pela ordem natural de suas representações de string, conforme retornado por toString (). |
Métodos herdados
Esta classe herda métodos da seguinte classe -
- java.lang.Object
Exemplo de classe de pedido
Crie o seguinte programa java usando qualquer editor de sua escolha em dizer C:/> Guava.
GuavaTester.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.google.common.collect.Ordering;
public class GuavaTester {
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);
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("Minimum: " + ordering.min(numbers));
System.out.println("Maximum: " + ordering.max(numbers));
Collections.sort(numbers,ordering.reverse());
System.out.println("Reverse: " + 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);
}
}
Verifique o resultado
Compile a classe usando javac compilador da seguinte forma -
C:\Guava>javac GuavaTester.java
Agora execute o GuavaTester para ver o resultado.
C:\Guava>java GuavaTester
Veja o resultado.
Input List:
[5, 2, 15, 51, 53, 35, 45, 32, 43, 16]
Sorted List:
[2, 5, 15, 16, 32, 35, 43, 45, 51, 53]
======================
List is sorted: true
Minimum: 2
Maximum: 53
Reverse: [53, 51, 45, 43, 35, 32, 16, 15, 5, 2]
Null added to Sorted List:
[53, 51, 45, 43, 35, 32, 16, 15, 5, 2, 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:
[Vikas, Suresh, Sohan, Shyam, Ramesh, Ram, Naresh, Mohan, Mahesh, Deepak, null]