<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FCollections%2FTreeSet</id>
		<title>Java Tutorial/Collections/TreeSet - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FCollections%2FTreeSet"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Collections/TreeSet&amp;action=history"/>
		<updated>2026-05-13T03:19:08Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Collections/TreeSet&amp;diff=4688&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Collections/TreeSet&amp;diff=4688&amp;oldid=prev"/>
				<updated>2010-06-01T05:04:33Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:04, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Collections/TreeSet&amp;diff=4687&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Collections/TreeSet&amp;diff=4687&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Check if a particular value exists in TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;String&amp;gt; tSet = new TreeSet&amp;lt;String&amp;gt;();&lt;br /&gt;
    tSet.add(&amp;quot;1&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;2&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;3&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;4&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;5&amp;quot;);&lt;br /&gt;
    boolean blnExists = tSet.contains(&amp;quot;3&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;3 exists in TreeSet ? : &amp;quot; + blnExists);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Copy all elements in TreeSet to an Object Array ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;Integer&amp;gt; tSet = new TreeSet&amp;lt;Integer&amp;gt;();&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;1&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;2&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;3&amp;quot;));&lt;br /&gt;
    Object[] objArray = tSet.toArray();&lt;br /&gt;
    for (Object obj: objArray){&lt;br /&gt;
      System.out.println(obj);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Creating a TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The first two constructors create empty tree sets:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public TreeSet()&lt;br /&gt;
public TreeSet(Comparator comp)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;[G, F, D, C, A]&lt;br /&gt;
java.util.Collections$ReverseComparator@192d342&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Fetching Elements: the iterator() method: public Iterator iterator() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Since the elements of a tree set are ordered, the order of the elements returned will be the order.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Arrays;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    String elements[] = { &amp;quot;A&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;G&amp;quot;, &amp;quot;F&amp;quot; };&lt;br /&gt;
    Set set = new TreeSet(Arrays.asList(elements));&lt;br /&gt;
    Iterator iter = set.iterator();&lt;br /&gt;
    while (iter.hasNext()) {&lt;br /&gt;
      System.out.println(iter.next());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;A&lt;br /&gt;
C&lt;br /&gt;
D&lt;br /&gt;
F&lt;br /&gt;
G&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get Head Set from Java TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.SortedSet;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;String&amp;gt; tSet = new TreeSet&amp;lt;String&amp;gt;();&lt;br /&gt;
    tSet.add(&amp;quot;1&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;2&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;3&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;4&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;5&amp;quot;);&lt;br /&gt;
    SortedSet sortedSet = tSet.headSet(&amp;quot;3&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Head Set Contains : &amp;quot; + sortedSet);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get lowest and highest value stored in TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;String&amp;gt; tSet = new TreeSet&amp;lt;String&amp;gt;();&lt;br /&gt;
    tSet.add(&amp;quot;1&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;2&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;3&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;4&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;5&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Lowest value Stored in Java TreeSet is : &amp;quot; + tSet.first());&lt;br /&gt;
    System.out.println(&amp;quot;Highest value Stored in Java TreeSet is : &amp;quot; + tSet.last());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get Size of TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;Integer&amp;gt; tSet = new TreeSet&amp;lt;Integer&amp;gt;();&lt;br /&gt;
    System.out.println(&amp;quot;Size of TreeSet : &amp;quot; + tSet.size());&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;1&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;2&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;3&amp;quot;));&lt;br /&gt;
    System.out.println(tSet.size());&lt;br /&gt;
    // remove one element from TreeSet using remove method&lt;br /&gt;
    tSet.remove(new Integer(&amp;quot;1&amp;quot;));&lt;br /&gt;
    System.out.println(&amp;quot;Size of TreeSet after removal : &amp;quot; + tSet.size());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get Sub Set from TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
import java.util.SortedSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;String&amp;gt; tSet = new TreeSet&amp;lt;String&amp;gt;();&lt;br /&gt;
    tSet.add(&amp;quot;1&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;2&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;3&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;4&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;5&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    SortedSet sortedSet = tSet.subSet(&amp;quot;2&amp;quot;, &amp;quot;5&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;SortedSet Contains : &amp;quot; + sortedSet);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get Synchronized Set from TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Collections;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet treeSet = new TreeSet();&lt;br /&gt;
    Set set = Collections.synchronizedSet(treeSet);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get Tail Set from TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.SortedSet;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;String&amp;gt; tSet = new TreeSet&amp;lt;String&amp;gt;();&lt;br /&gt;
    tSet.add(&amp;quot;1&amp;quot;);    &lt;br /&gt;
    tSet.add(&amp;quot;2&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;3&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;5&amp;quot;);&lt;br /&gt;
    tSet.add(&amp;quot;4&amp;quot;);&lt;br /&gt;
    SortedSet sortedSet = tSet.tailSet(&amp;quot;2&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Tail Set Contains : &amp;quot; + sortedSet);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  headset, tailset and subset ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;headSet: The fromElement will be in the subset, while the toElement will not: fromElement &lt;br /&gt;
&amp;lt;= set view &amp;lt; toElement&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you want the toElement to be in the subset, you must pass in the next node of the tree, or &lt;br /&gt;
a value that is just beyond the element.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you are using string nodes, you can adding something to the end:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SortedSet headSet = set.headSet(toElement+&amp;quot;\0&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;[C, D, F, G]&lt;br /&gt;
[A]&lt;br /&gt;
[A, C]&lt;br /&gt;
[D, F, G]&lt;br /&gt;
[C, D, F]&lt;br /&gt;
[C]&lt;br /&gt;
[]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;While displaying elements in an easily sorted manner is nice, if you don&amp;quot;t need the behavior, &lt;br /&gt;
the cost to add elements and search for them is not worth it.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Iterate through elements of TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;Integer&amp;gt; tSet = new TreeSet&amp;lt;Integer&amp;gt;();&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;1&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;2&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;3&amp;quot;));&lt;br /&gt;
    Iterator itr = tSet.iterator();&lt;br /&gt;
    while (itr.hasNext()){&lt;br /&gt;
      System.out.println(itr.next());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Looping through a sorted set backwards ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Arrays;&lt;br /&gt;
import java.util.NoSuchElementException;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    String[] elements = new String[] { &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot; };&lt;br /&gt;
    TreeSet set = new TreeSet(Arrays.asList(elements));&lt;br /&gt;
    try {&lt;br /&gt;
      Object last = set.last();&lt;br /&gt;
      boolean first = true;&lt;br /&gt;
      while (true) {&lt;br /&gt;
        if (!first) {&lt;br /&gt;
          System.out.print(&amp;quot;, &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(last);&lt;br /&gt;
        last = set.headSet(last).last();&lt;br /&gt;
      }&lt;br /&gt;
    } catch (NoSuchElementException e) {&lt;br /&gt;
      System.out.println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;D&lt;br /&gt;
C&lt;br /&gt;
B&lt;br /&gt;
A&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Remove all elements from TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;Integer&amp;gt; tSet = new TreeSet&amp;lt;Integer&amp;gt;();&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;1&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;2&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;3&amp;quot;));&lt;br /&gt;
    System.out.println(&amp;quot;TreeSet before removal : &amp;quot; + tSet);&lt;br /&gt;
    tSet.clear();&lt;br /&gt;
    System.out.println(&amp;quot;TreeSet after removal : &amp;quot; + tSet);&lt;br /&gt;
    System.out.println(&amp;quot;Is TreeSet empty ? &amp;quot; + tSet.isEmpty());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Remove specified element from TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    TreeSet&amp;lt;Integer&amp;gt; tSet = new TreeSet&amp;lt;Integer&amp;gt;();&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;1&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;2&amp;quot;));&lt;br /&gt;
    tSet.add(new Integer(&amp;quot;3&amp;quot;));&lt;br /&gt;
    System.out.println(tSet);&lt;br /&gt;
    System.out.println(&amp;quot;Was 2 removed from TreeSet ? &amp;quot; + tSet.remove(new Integer(&amp;quot;2&amp;quot;)));&lt;br /&gt;
    System.out.println(tSet);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Retrieving the Ends for a TreeSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You can use the first() and last() methods of TreeSet to get the elements at the ends of the tree:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public Object first()&lt;br /&gt;
public Object last()&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;[A, C, D, F, G]&lt;br /&gt;
A&lt;br /&gt;
G&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Sort items in a Set ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Set&amp;lt;String&amp;gt; set = new TreeSet&amp;lt;String&amp;gt;();&lt;br /&gt;
    set.add(&amp;quot;Z&amp;quot;);&lt;br /&gt;
    set.add(&amp;quot;A&amp;quot;);&lt;br /&gt;
    set.add(&amp;quot;F&amp;quot;);&lt;br /&gt;
    set.add(&amp;quot;B&amp;quot;);&lt;br /&gt;
    set.add(&amp;quot;H&amp;quot;);&lt;br /&gt;
    set.add(&amp;quot;X&amp;quot;);&lt;br /&gt;
    set.add(&amp;quot;N&amp;quot;);&lt;br /&gt;
    for (String item : set) {&lt;br /&gt;
      System.out.print(item + &amp;quot; &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The second two constructors are copy constructors ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public TreeSet(Collection col)&lt;br /&gt;
public TreeSet(SortedSet set)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;[A, C, D, F, G]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The third method subSet() provides the end points: public SortedSet subSet(Object fromElement, Object toElement) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;if you remove something from the subset, it&amp;quot;s gone.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;if you try to add something to the subtree, it must &amp;quot;fit&amp;quot; within your view of the tree.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;And if you add something to the original view, the subset will be altered, too.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Arrays;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    String elements[] = { &amp;quot;A&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;G&amp;quot;, &amp;quot;F&amp;quot; };&lt;br /&gt;
    TreeSet set = new TreeSet(Arrays.asList(elements));&lt;br /&gt;
    System.out.println(set.subSet(&amp;quot;C&amp;quot;, &amp;quot;F&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;[C, D]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  To add a single element: the add() method: public boolean add(Object element) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The element to add must implement the Comparable interface or &lt;br /&gt;
the TreeSet constructor must have been passed a Comparator.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If both of these are not true &lt;br /&gt;
then a ClassCastException will be thrown.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.util.Collections;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    String elements[] = { &amp;quot;A&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;G&amp;quot;, &amp;quot;F&amp;quot; };&lt;br /&gt;
    Set set = new TreeSet(Collections.reverseOrder());&lt;br /&gt;
    for (int i = 0, n = elements.length; i &amp;lt; n; i++) {&lt;br /&gt;
      set.add(elements[i]);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(set);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;[G, F, D, C, A]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  TreeSet Class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;The other concrete Set implementation is the TreeSet.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;A TreeSet keeps its elements ordered internally.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The tree is balanced, it&amp;quot;s a red-black tree.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Having a balanced tree guarantees a quick o(log n) search time at the cost of a more time-intensive &lt;br /&gt;
insertion (and deletion).&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Elements added to the tree must be orderable.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Red-black tree rules refresher:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Every node in the tree is either black or red.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The root is always black.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;If a node is red, its children must be black.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Every path from the root to a leaf (or null child) must contain the same number of black nodes.&lt;br /&gt;
(referenced from &amp;quot;Java Collections by John Zukowski Apress 2001&amp;quot;)&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  TreeSet.descendingSet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.NavigableSet;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class CityNavigator {&lt;br /&gt;
  static NavigableSet&amp;lt;String&amp;gt; citiesSet;&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    String[] cities = { &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;E&amp;quot;, &amp;quot;F&amp;quot; };&lt;br /&gt;
    citiesSet = new TreeSet&amp;lt;String&amp;gt;();&lt;br /&gt;
    for (String city : cities)&lt;br /&gt;
      citiesSet.add(city);&lt;br /&gt;
    for (String city : citiesSet.descendingSet())&lt;br /&gt;
      System.out.println(&amp;quot;  &amp;quot; + city);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Viewing Subsets ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The headSet(), tailSet(), and subSet() allow you to acquire the subset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SortedSet headSet(Object toElement)&lt;br /&gt;
SortedSet tailSet(Object fromElement)&lt;br /&gt;
SortedSet subSet(Object fromElement, Object toElement)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Working with Subsets ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Since a TreeSet is ordered, its subset is also ordered. &lt;br /&gt;
The two that are simplest to explain are headset() and tailSet():&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public SortedSet headSet(Object toElement)&lt;br /&gt;
public SortedSet tailSet(Object fromElement)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;[A, C]&lt;br /&gt;
[A, C, D, F, G]&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>