Dominando a Interface NavigableSet do Java: Navegação, Ordenação e Exemplos Práticos
Interface NavigableSet do Java
Neste tutorial, aprenderemos sobre a interface NavigableSet do Java e seus métodos com a ajuda de um exemplo.
A interface NavigableSet do framework Java Collections fornece recursos para navegar entre os elementos do conjunto.
Ela é considerada um tipo de SortedSet.
Classe que Implementa NavigableSet
Para usar as funcionalidades da interface NavigableSet, precisamos usar a classe TreeSet que implementa NavigableSet.
Como Usar NavigableSet?
Em Java, devemos importar o pacote java.util.NavigableSet para usar NavigableSet. Após importar o pacote, veja como podemos criar conjuntos navegáveis.
// Implementação SortedSet pela classe TreeSet
NavigableSet<String> numeros = new TreeSet<>();
Aqui, criamos um conjunto navegável chamado numeros da classe TreeSet.
Métodos do NavigableSet
O NavigableSet é considerado um tipo de SortedSet porque estende a interface SortedSet.
Portanto, todos os métodos do SortedSet também estão disponíveis no NavigableSet. Para aprender como esses métodos funcionam, visite Java SortedSet.
No entanto, alguns métodos do SortedSet (headSet(), tailSet() e subSet()) são definidos de forma diferente no NavigableSet.
Vamos ver como esses métodos são definidos no NavigableSet.
headSet(elemento, valorBooleano)
O método headSet() retorna todos os elementos de um conjunto navegável antes do elemento especificado (passado como argumento).
O parâmetro valorBooleano é opcional. Seu valor padrão é false.
Se true for passado como valorBooleano, o método retorna todos os elementos antes do elemento especificado, incluindo o próprio elemento.
tailSet(elemento, valorBooleano)
O método tailSet() retorna todos os elementos de um conjunto navegável após o elemento especificado (passado como argumento), incluindo o elemento especificado.
O parâmetro valorBooleano é opcional. Seu valor padrão é true.
Se false for passado como valorBooleano, o método retorna todos os elementos após o elemento especificado sem incluí-lo.
subSet(e1, bv1, e2, bv2)
O método subSet() retorna todos os elementos entre e1 e e2, incluindo e1.
Os parâmetros bv1 e bv2 são opcionais. O valor padrão de bv1 é true, e o de bv2 é false.
Se false for passado como bv1, o método retorna todos os elementos entre e1 e e2 sem incluir e1.
Se true for passado como bv2, o método retorna todos os elementos entre e1 e e2, incluindo e1.
Métodos para Navegação
O NavigableSet fornece vários métodos que podem ser usados para navegar sobre seus elementos.
- descendingSet() – inverte a ordem dos elementos no conjunto
- descendingIterator() – retorna um iterador para percorrer o conjunto em ordem reversa
- ceiling() – retorna o menor elemento entre aqueles maiores ou iguais ao elemento especificado
- floor() – retorna o maior elemento entre aqueles menores ou iguais ao elemento especificado
- higher() – retorna o menor elemento entre aqueles estritamente maiores que o elemento especificado
- lower() – retorna o maior elemento entre aqueles estritamente menores que o elemento especificado
- pollFirst() – retorna e remove o primeiro elemento do conjunto
- pollLast() – retorna e remove o último elemento do conjunto
Para saber mais sobre NavigableSet, visite a documentação oficial Java NavigableSet.
Implementação de NavigableSet na Classe TreeSet
import java.util.NavigableSet;
import java.util.TreeSet;
class Main {
public static void main(String[] args) {
// Criando NavigableSet usando TreeSet
NavigableSet<Integer> numeros = new TreeSet<>();
// Insere elementos no conjunto
numeros.add(1);
numeros.add(2);
numeros.add(3);
System.out.println("NavigableSet: " + numeros);
// Acessa o primeiro elemento
int primeiroElemento = numeros.first();
System.out.println("Primeiro Número: " + primeiroElemento);
// Acessa o último elemento
int ultimoElemento = numeros.last();
System.out.println("Último Elemento: " + ultimoElemento);
// Remove o primeiro elemento
int numero1 = numeros.pollFirst();
System.out.println("Primeiro Elemento Removido: " + numero1);
// Remove o último elemento
int numero2 = numeros.pollLast();
System.out.println("Último Elemento Removido: " + numero2);
}
}
Saída
NavigableSet: [1, 2, 3] Primeiro Elemento: 1 Último Elemento: 3 Primeiro Elemento Removido: 1 Último Elemento Removido: 3
Para saber mais sobre TreeSet, visite Java TreeSet.
Agora que conhecemos a interface NavigableSet, aprenderemos sobre sua implementação usando a classe TreeSet.
Java
- Dominando Interfaces em C#: Definição, Implementação e Casos Práticos
- Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
- Comentários em Java: Tipos, Uso e Boas Práticas
- Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
- Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
- Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
- Dominando Expressões Lambda em Java: Do Básico à Stream API
- Interface vs Classe Abstrata em Java: Como Escolher a Abstração Certa
- Entendendo Interfaces em Java: Definições, Usos e Boas Práticas
- Java 9 Métodos Privados em Interfaces: Aumentando Encapsulamento e Reuso de Código