Escrevo este post pois outro dia fui procurar o método ‘headSet(E, boolean)’ na interface SortedSet, pois acreditava que esta interface estava mais focada para criação das Backed Collections e a interface NavigableSet, até como sugere o nome, estivesse mais focada em promover métodos para a navegação entre os elementos de uma coleção.
A interface NavigableSet (que estende a interface SortedSet) define um método mais especializado para Backed Collections que permite o uso do valor booleano “true / false” para incluir (ou não) o valor da extremidade da Backed Collection desejada.
import java.util.SortedSet;
import java.util.NavigableSet;
import java.util.Set;
import java.util.TreeSet;
public class Teste {
public static void main(String[] args){
Set<String> set = new TreeSet<String>();
set.add(“me”);
set.add(“you”);
set.add(“your”);
set.add(“they”);
set.add(“she”);
// Imprimindo ordem alfabetica
System.out.println(set); //#1
SortedSet<String> sset = (SortedSet<String>) set;
System.out.println(sset.headSet(“your”)); //#2
NavigableSet<String> nset = (NavigableSet<String>) set;
System.out.println(nset.headSet(“your”, true)); //#3 — a assinatura do método com o valor booleano faz parte da interface mais especializada NavigableSet.
}
}
Output:
[me, she, they, you, your] //#1
[me, she, they, you] //#2
[me, she, they, you, your] //#3