Por favor, lembre-se que esta tradução da especificação é resultado de um projeto da comunidade java.net( https://jdk5-api-pt-br.dev.java.net/). A versão oficial da especificação é a versão na língua inglesa que pode ser encontrada em http://java.sun.com/j2se/1.5.0/docs/api/. Em caso de divergências, a versão predominante da especificação é a original em inglês.

Please note that this translation of the specification is the result of a java.net community project ( https://jdk5-api-pt-br.dev.java.net/ ). The official version of the specification is the US English language version which can be found at http://java.sun.com/j2se/1.5.0/docs/api/. In case of disputes, the authoritative version of the specification is the original, English document.


JavaTM 2 Platform
Standard Ed. 5.0

java.util
Class TreeSet<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractSet<E>
          extended by java.util.TreeSet<E>
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>, SortedSet<E>

public class TreeSet<E>
extends AbstractSet<E>
implements SortedSet<E>, Cloneable, Serializable

Esta classe implementa a interface Set, suportado por uma instância de TreeMap. Esta classe garante que o sorted set estará em ordem de elemento ascendente, classificado de acordo com o ordenamento natural dos elementos (veja Comparable), ou de acordo com comparador fornecido no momento de criação do set, dependendo de qual construtor for usado.

Esta implementação fornece custo de tempo log(n) garantido para as operações básicas (add, remove e contains).

Note que o ordenamento mantido por um sorted set (mesmo que um comparador seja fornecido) precisa ser consistente com equals se for para implementar corretamente a interface Set. (Veja a inteface Comparable ou a interface Comparator para uma definição precisa de consistente com equals.) Isto porque a interface Set é definida em termos da operação equals, mas uma instância de TreeSet pratica todas as comparações de key usando seus métodos compareTo (ou compare), de forma que duas keys que são consideradas iguais por esse método são, do ponto de vista do set, iguais. O comportamento de um set é bem definido mesmo se este ordenamento for inconsistente com equals; ele apenas falha em obedecer o contrato geral da interface Set.

Note que esta implementação não é sincronizada. Se múltiplas threads acessam um set concorrentemente, e pelo menos uma dessas threads modifica o set, este precisa ser sincronizado externamente. Isto pode ser feito sincronizando no objeto que possa vir a encapsular o set. Se não existir esse objeto, o set deve ser "embalado" usando o método Collections.synchronizedSet. Isto é melhor feito no tempo de criação, para previnir um acesso acidental, sem sincronismo, ao set:

     SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
 

Os Iteratores retornados pelo método iterator são fail-fast: se o set for modificado após a criação do iterator, de qualquer maneira exceto através do próprio método remove do iterator, este deve lançar uma ConcurrentModificationException. Assim, no caso de uma modificação concorrente, o iterator falha rápida e claramente, ao invés de arriscar um comportamento arbitrário e de difícil determinação posterior.

Note que o comportamento fail-fast de um iterator não pode ser garantido já que, geralmente falando, é impossível garantir algo na presença de modificação concorrente sem sincronismo. Iteratores fail-fast fazem o possível para lançar ConcurrentModificationException. Conseqüentemente, deveria ser errado escrever um programa que dependa desta exceção para o seu correto funcionamento: o comportamento fail-fast dos iteratores deve ser usado apenas para detectar bugs

Esta classe é um membro do Java Collections Framework.

Since:
1.2
See Also:
Collection, Set, HashSet, Comparable, Comparator, Collections.synchronizedSortedSet(SortedSet), TreeMap, Serialized Form

Constructor Summary
TreeSet()
          Constrói um novo set, vazio, classificado de acordo com o ordenamento natural dos elementos.
TreeSet(Collection<? extends E> c)
          Constrói um novo set contendo os elementos da coleção especificada, classificados de acordo com o ordenamento natural destes elementos.
TreeSet(Comparator<? super E> c)
          Constrói um novo set, vazio, classificado de acordo com o comparador especificado.
TreeSet(SortedSet<E> s)
          Constrói um novo set contendo os mesmos elementos do sorted set especificado, classificado de acordo com o mesmo ordenamento.
 
Method Summary
 boolean add(E o)
          Adiciona o elemento especificado neste set se ele já não estiver presente.
 boolean addAll(Collection<? extends E> c)
          Adiciona neste set todos os elementos da coleção especificada.
 void clear()
          Remove todos os elementos deste set.
 Object clone()
          Retorna uma cópia raza desta instância de TreeSet.
 Comparator<? super E> comparator()
          Retorna o comparador usado para classificar este sorted set, ou null se este tree set usa ordenamento natural de seus elementos.
 boolean contains(Object o)
          Retorna true se este set contiver o elemento especificado.
 E first()
          Retorna o primeiro (inferior) elemento atualmente neste sorted set.
 SortedSet<E> headSet(E toElement)
          Retorna uma visão da porção deste sorted set cujo elementos são estritamente menores que toElement.
 boolean isEmpty()
          Retorna true se este set não contiver elementos.
 Iterator<E> iterator()
          Retorna um iterator sobre os elementos neste set.
 E last()
          Retorna o último (superior) elemento atualmente neste sorted set.
 boolean remove(Object o)
          Remove o elemento especificado deste set se ele estiver presente.
 int size()
          Retorna o número de elementos neste set (sua cardinalidade).
 SortedSet<E> subSet(E fromElement, E toElement)
          Retorna uma visão da porção deste sorted set cujo elementos vão de fromElement, inclusive, até toElement, exclusivo.
 SortedSet<E> tailSet(E fromElement)
          Retorna uma visão da porção deste sorted set cujo elementos são maiores ou iguais à fromElement.
 
Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
 
Methods inherited from class java.util.AbstractCollection
containsAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Set
containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
 

Constructor Detail

TreeSet

public TreeSet()
Constrói um novo set, vazio, classificado de acordo com o ordenamento natural dos elementos. Todos elementos inseridos no set precisam implementar a interface Comparable. Além disso, tais elementos precisam ser mutuamente comparáveis: e1.compareTo(e2) não pode lançar uma ClassCastException para quaisquer elementos e1 e e2 no set. Se o usuário tentar adicionar um elemento no set que viola essa restrição (por exemplo, o usuário tentar adicionar um elemento string no set cujo elementos são integers), a chamada a add(Object) deve lançar uma ClassCastException.

See Also:
Comparable

TreeSet

public TreeSet(Comparator<? super E> c)
Constrói um novo set, vazio, classificado de acordo com o comparador especificado. Todos elementos inseridos no set precisam ser mutuamente comparáveis pelo comparador especificado: comparator.compare(e1, e2) não pode lançar uma ClassCastException para quaisquer elementose1 e e2 no set. Se o usuário tentar adicionar um elemento no set que viola essa restrição, a chamada a add(Object) deve lançar uma ClassCastException.

Parameters:
c - o comparador a ser usado para classificar este set. Um valor null indica que o ordenamento natural dos elementos deve ser usado.

TreeSet

public TreeSet(Collection<? extends E> c)
Constrói um novo set contendo os elementos da coleção especificada, classificados de acordo com o ordenamento natural destes elementos. Todas as keys inseridas no set precisam implementar a interface Comparable. Além disso, todas essas keys precisam ser mutuamente comparáveis: k1.compareTo(k2) não podem lançar uma ClassCastException para quaisquer elementos k1 e k2 no set.

Parameters:
c - Os elementos que devem formar o novo set.
Throws:
ClassCastException - se as keys na coleção especificada não forem comparáveis, ou mutuamente comparáveis.
NullPointerException - se a coleção especificada for null.

TreeSet

public TreeSet(SortedSet<E> s)
Constrói um novo set contendo os mesmos elementos do sorted set especificado, classificado de acordo com o mesmo ordenamento.

Parameters:
s - sorted set cujo elementos devem formar o novo set.
Throws:
NullPointerException - se o sorted set especificado for null.
Method Detail

iterator

public Iterator<E> iterator()
Retorna um iterator sobre os elementos neste set. Os elementos são retornados em ordem ascendente.

Specified by:
iterator in interface Iterable<E>
Specified by:
iterator in interface Collection<E>
Specified by:
iterator in interface Set<E>
Specified by:
iterator in class AbstractCollection<E>
Returns:
um iterator sobre os elementos neste set.

size

public int size()
Retorna o número de elementos neste set (sua cardinalidade).

Specified by:
size in interface Collection<E>
Specified by:
size in interface Set<E>
Specified by:
size in class AbstractCollection<E>
Returns:
o número de elementos neste set (sua cardinalidade).

isEmpty

public boolean isEmpty()
Retorna true se este set não contiver elementos.

Specified by:
isEmpty in interface Collection<E>
Specified by:
isEmpty in interface Set<E>
Overrides:
isEmpty in class AbstractCollection<E>
Returns:
true se este set não contiver elementos.

contains

public boolean contains(Object o)
Retorna true se este set contiver o elemento especificado.

Specified by:
contains in interface Collection<E>
Specified by:
contains in interface Set<E>
Overrides:
contains in class AbstractCollection<E>
Parameters:
o - objeto cuja presença neste set deve ser testada.
Returns:
true se este set contiver o elemento especificado.
Throws:
ClassCastException - se o objeto especificado não puder ser comparado com os elementos atualmente neste set.

add

public boolean add(E o)
Adiciona o elemento especificado neste set se ele já não estiver presente.

Specified by:
add in interface Collection<E>
Specified by:
add in interface Set<E>
Overrides:
add in class AbstractCollection<E>
Parameters:
o - elemento a ser adicionado neste set.
Returns:
true se o set já não contiver o elemento especificado.
Throws:
ClassCastException - se o objeto especificado não puder ser comparado com os elementos atualmente neste set.

remove

public boolean remove(Object o)
Remove o elemento especificado deste set se ele estiver presente.

Specified by:
remove in interface Collection<E>
Specified by:
remove in interface Set<E>
Overrides:
remove in class AbstractCollection<E>
Parameters:
o - objeto a ser removido deste set, se presente.
Returns:
true se o set contiver o elemento especificado.
Throws:
ClassCastException - se o objeto especificado não puder ser comparado com os elementos atualmente neste set.

clear

public void clear()
Remove todos os elementos deste set.

Specified by:
clear in interface Collection<E>
Specified by:
clear in interface Set<E>
Overrides:
clear in class AbstractCollection<E>

addAll

public boolean addAll(Collection<? extends E> c)
Adiciona neste set todos os elementos da coleção especificada.

Specified by:
addAll in interface Collection<E>
Specified by:
addAll in interface Set<E>
Overrides:
addAll in class AbstractCollection<E>
Parameters:
c - elementos a serem adicionados.
Returns:
true se este set for alterado como resultado da chamada.
Throws:
ClassCastException - se os elementos fornecidos não puderem ser comparados com os elementos atualmente neste set.
NullPointerException - se a coleção especificada for null.
See Also:
AbstractCollection.add(Object)

subSet

public SortedSet<E> subSet(E fromElement,
                           E toElement)
Retorna uma visão da porção deste sorted set cujo elementos vão de fromElement, inclusive, até toElement, exclusivo. (se fromElement e toElement forem iguais, o sorted set retornado será vazio.) O sorted set retornado é suportado por este sorted set, portanto, alterações no sorted set retornado serão refletidas neste sorted set, e vice-versa. O sorted set retornado suporta todas as operações de set opcionais que este sorted set suporta.

O sorted set retornado por este método deve lançar uma IllegalArgumentException se o usuário tentar inserir um elemento fora dos limites especificados.

Nota: este método sempre retorna uma coleção meia-aberta (que inclui seu limite inferior mas não seu limite superior). Se você necessita uma coleção fechada (que inclui ambos os extremos), e o tipo do elemento permite o cálculo do sucessor de um dado valor, simplesmente solicite a partir do limiteInferior até sucessor(limiteSuperior). Por exemplo, suponhamos que s seja um sorted set de strings. O idioma a seguir obtém uma visão contendo todas as strings em s de inferior até superior, inclusive:

 SortedSet sub = s.subSet(inferior, superior+"\0");
 
Uma técnica similar pode ser usada para gerar uma coleção aberta (que não contém os extremos). O idioma a seguir obtém uma visão contendo todas as strings em s de inferior até superior, exclusivo:
 SortedSet sub = s.subSet(inferior+"\0", superior);
 

Specified by:
subSet in interface SortedSet<E>
Parameters:
fromElement - limite inferior (inclusive) do subSet.
toElement - limite superior (exclusivo) do subSet.
Returns:
uma visão deste sorted set, nos limites especificados.
Throws:
ClassCastException - se fromElement e toElement não puderem ser comparados um com o outro usando o comparador deste set (ou, se o set não tiver comparador, usando ordenamento natural).
IllegalArgumentException - se fromElement for maior que toElement.
NullPointerException - se fromElement ou toElement for null e este set usa ordenamento natural, ou seu comparador não tolera elementos null.

headSet

public SortedSet<E> headSet(E toElement)
Retorna uma visão da porção deste sorted set cujo elementos são estritamente menores que toElement. O sorted set retornado é suportado por este sorted set, portanto, alterações no sorted set retornado serão refletidas neste sorted set, e vice-versa. O sorted set retornado suporta todas as operações de set opcionais que este sorted set suporta.

O sorted set retornado por este método deve lançar uma IllegalArgumentException se o usuário tentar inserir um elemento maior ou igual a toElement.

Nota: este método sempre retorna uma visão que não contém seu limite superior. Se você necessita uma visão que contenha este limite superior, e o tipo do elemento permite o cálculo do sucessor de um dado valor, simplesmente solicite um headSet limitado por sucessor(limiteSuperior). Por exemplo, suponhamos que s seja um sorted set de strings. O idioma a seguir obtém uma visão contendo todas as strings em s que são menores que, ou igual à superior:

    SortedSet head = s.headSet(superior+"\0");

Specified by:
headSet in interface SortedSet<E>
Parameters:
toElement - limite superior (exclusivo) do headSet.
Returns:
uma visão da porção deste set cujo elementos são estritamente menores que toElement.
Throws:
ClassCastException - se toElement não for compatível com o comparador deste set (ou, se o set não tiver comparador, se toElement não implementar Comparable).
IllegalArgumentException - se este set for ele próprio um subSet, headSet, ou tailSet, e toElement não estiver dentro do limite especificado para o subSet, headSet, or tailSet.
NullPointerException - se toElement for null e este set usa ordenamento natural, ou seu comparador não tolera elementos null.

tailSet

public SortedSet<E> tailSet(E fromElement)
Retorna uma visão da porção deste sorted set cujo elementos são maiores ou iguais à fromElement. O sorted set retornado é suportado por este sorted set, portanto, alterações no sorted set retornado são refletidas neste sorted set, e vice-versa. O sorted set retornado suporta todas as operações de set opcionais que este sorted set suporta.

O sorted set retornado por este método deve lançar uma IllegalArgumentException se o usuário tentar inserir um elemento menor que fromElement.

Nota: este método sempre retorna uma visão que contém seu limite inferior. Se você necessita uma visão que não contenha este limite inferior, e o tipo do elemento permite o cálculo do sucessor de um dado valor, simplesmente solicite um tailSet limitado por sucessor(limiteInferior). Por exemplo, suponhamos que s seja um sorted set de strings. O idioma a seguir obtém uma visão contendo todas as strings em s que forem estritamente maiores que inferior:

    SortedSet tail = s.tailSet(inferior+"\0");

Specified by:
tailSet in interface SortedSet<E>
Parameters:
fromElement - limite inferior (inclusive) do tailSet.
Returns:
uma visão da porção deste set cujo elementos são maiores ou iguais à fromElement.
Throws:
ClassCastException - se fromElement não for compatível com o comparador deste set (ou, se o set não tiver comparador, se fromElement não implementar Comparable).
IllegalArgumentException - se este set for ele próprio um subSet, headSet, or tailSet, e fromElement não estiver dentro do limite especificado para o subSet, headSet, or tailSet.
NullPointerException - se fromElement for null e este set usa ordenamento natural, ou seu comparador não tolera elementos null.

comparator

public Comparator<? super E> comparator()
Retorna o comparador usado para classificar este sorted set, ou null se este tree set usa ordenamento natural de seus elementos.

Specified by:
comparator in interface SortedSet<E>
Returns:
o comparador usado para classificar este sorted set, ou null se este tree set usa ordenamento natural de seus elementos.

first

public E first()
Retorna o primeiro (inferior) elemento atualmente neste sorted set.

Specified by:
first in interface SortedSet<E>
Returns:
o primeiro (inferior) elemento atualmente neste sorted set.
Throws:
NoSuchElementException - caso sorted set esteja vazio.

last

public E last()
Retorna o último (superior) elemento atualmente neste sorted set.

Specified by:
last in interface SortedSet<E>
Returns:
o último (superior) elemento atualmente neste sorted set.
Throws:
NoSuchElementException - caso sorted set esteja vazio.

clone

public Object clone()
Retorna uma cópia raza desta instância de TreeSet. (Os elementos não são clonados.)

Overrides:
clone in class Object
Returns:
uma cópia raza deste set.
See Also:
Cloneable

JavaTM 2 Platform
Standard Ed. 5.0

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

Copyright 2006 Sun Microsystems, Inc. Todos os direitos reservados. O uso está sujeito aos termos da licensa.