Java TreeSet

Java TreeSet

TreeSet提供了一个SortedSet接口的实现,SortedSet扩展了Set接口。它的行为类似于简单的集合,不同的是它以排序的形式存储元素。以下是TreeSet的特点。

  • TreeSet使用树形数据结构进行存储。
  • 对象是以排序后的升序存储的。但是我们可以使用TreeSet.descendingIterator()方法进行降序迭代。
  • 访问和检索的时间非常快,这使得TreeSet成为以排序格式存储大量数据的最佳选择。
  • TreeSet不使用hashCode()和equals()方法来比较它的元素。它使用compare()(或compareTo())方法来确定两个元素的相等。

treeset类的重要方法

  • boolean add(E e): 如果指定的元素还没有出现,该方法将其添加到这个集合中。
  • E ceiling(E e): 这个方法返回这个集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回空。
  • boolean contains(Object o): 如果这个集合包含指定的元素,该方法返回true。
  • E floor(E e): 该方法返回这个集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回null。
  • E pollFirst(): 这个方法检索并删除第一个(最低)元素,如果这个集合是空的,则返回null。
  • E pollLast() : 这个方法检索并删除最后一个(最高)元素,如果这个集合是空的,则返回null。
  • boolean remove(Object o): 这个方法从这个集合中删除指定的元素,如果它是存在的。

下面是一个非常简单的TreeSet实现,包括TreeSet的排序,TreeSet中的迭代,检索第一个和最后一个元素,以及删除一个元素。

// Java program to demonstrate working TreeSet collection
import java.util.Iterator;
import java.util.TreeSet;
 
public class TreeSetExample
{
    public static void main(String[] args)
    {
        TreeSet<Integer> ts = new TreeSet<Integer>();
        ts.add(10);
        ts.add(61);
        ts.add(87);
        ts.add(39);
 
        Iterator<Integer> iterator = ts.iterator();
        System.out.print("Tree set data: ");
 
        // note that 87 being largest element, appears in
        // the last.
        while (iterator.hasNext())
            System.out.print(iterator.next() + " ");
        System.out.println();
 
        // to check if treeset is empty or not.
        if (ts.isEmpty())
            System.out.print("Tree Set is empty.");
        else
            System.out.println("Tree Set size: " + ts.size());
 
        // To get the smallest element from the set
        System.out.println("First data: " + ts.first());
 
        // To get the largest value from set
        System.out.println("Last data: " + ts.last());
 
        // remove 61 from set.
        if (ts.remove(61))
            System.out.println("Data is removed from tree set");
        else
            System.out.println("Data doesn't exist!");
 
        System.out.print("Now the tree set contain: ");
        iterator = ts.iterator();
 
        // Displaying the Tree set data
        while (iterator.hasNext())
            System.out.print(iterator.next() + " ");
 
        System.out.println();
        System.out.println("Now the size of tree set: " +
                           ts.size());
 
        // Remove all
        ts.clear();
        if (ts.isEmpty())
            System.out.print("Tree Set is empty.");
        else
            System.out.println("Tree Set size: " + ts.size());
    }
}

输出

Tree set data: 10 39 61 87 

Tree Set size: 4

First data: 10

Last data: 87

Data is removed from tree set

Now the tree set contain: 10 39 87 

Now the size of tree set: 3

Tree Set is empty.

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程