Java TreeSet
1 什么是Java TreeSet
Java TreeSet类实现了Set接口,TreeSet接口使用树结构进行存储。TreeSet继承了AbstractSet类并实现了NavigableSet接口。TreeSet类的对象以升序方式存储。
关于Java TreeSet类的核心要点是:
- Java TreeSet类不能存储重复元素,和HashSet相似。
- Java TreeSet类的访问和检索时间快。
- Java TreeSet类不允许使用Null元素。
- Java TreeSet类是非同步(线程不安全的)。
- Java TreeSet类元素是升序的。
2 Java TreeSet的层次结构
如上图所示,Java TreeSet类实现了NavigableSet接口。NavigableSet接口按层次结构顺序继承了SortedSet,Set,Collection和Iterable接口。
3 Java TreeSet的语法
public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable
4 Java TreeSet的构造方法
构造方法 | 描述 |
---|---|
TreeSet() | 用于构造一个空Treeset,该TreeSet将根据自然顺序以升序排序。 |
TreeSet(Collection<? extends E> c) | 用于构建包含集合的元素的新TreeSet。 |
TreeSet(Comparator<? super E> comparator) | 用于构造一个空TreeSet,该TreeSet将根据给定的比较器进行排序。 |
TreeSet(SortedSet<E> s) | 用于构建包含给定SortedSet元素的TreeSet。 |
5 Java TreeSet的方法
6 Java TreeSet示例1
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java TreeSet的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
//创建TreeSet并添加元素
TreeSet<String> al=new TreeSet<String>();
al.add("Eric");
al.add("Jack");
al.add("Rose");
al.add("Mark");
//遍历元素
Iterator<String> itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
输出结果为:
Eric
Jack
Mark
Rose
7 Java TreeSet示例2
让我们看一个以降序遍历元素的示例。
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java TreeSet的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
TreeSet<String> set=new TreeSet<String>();
set.add("Eric");
set.add("Jack");
set.add("Rose");
System.out.println("倒序排序TreeSet:");
Iterator i=set.descendingIterator();
while(i.hasNext())
{
System.out.println(i.next());
}
}
}
输出结果为:
倒序排序TreeSet:
Rose
Jack
Eric
8 Java TreeSet示例3
让我们看一个示例来检索和删除最高和最低值。
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java TreeSet的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
TreeSet<Integer> set=new TreeSet<Integer>();
set.add(24);
set.add(66);
set.add(12);
set.add(15);
System.out.println("最大值: "+set.pollFirst());
System.out.println("最小值: "+set.pollLast());
}
}
输出结果为:
栈顶值: 12
栈底: 66
9 Java TreeSet示例4
在此示例中,执行各种NavigableSet操作。
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java TreeSet的例子
*/
import java.util.*;
class TreeSet4{
public static void main(String args[]){
TreeSet<String> set=new TreeSet<String>();
set.add("A");
set.add("B");
set.add("C");
set.add("D");
set.add("E");
System.out.println("初始化TreeSet: "+set);
System.out.println("反转TreeSet: "+set.descendingSet());
System.out.println("headSet方法: "+set.headSet("C", true));
System.out.println("subSet方法: "+set.subSet("A", false, "E", true));
System.out.println("tailSet方法: "+set.tailSet("C", false));
}
}
输出结果为:
初始化TreeSet: [A, B, C, D, E]
反转TreeSet: [E, D, C, B, A]
headSet方法: [A, B, C]
subSet方法: [B, C, D, E]
tailSet方法: [D, E]
10 Java TreeSet示例5
在此示例中,执行各种SortedSetSet操作。
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java TreeSet的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
TreeSet<String> set=new TreeSet<String>();
set.add("A");
set.add("B");
set.add("C");
set.add("D");
set.add("E");
System.out.println("初始化TreeSet: "+set);
System.out.println("headSet方法: "+set.headSet("C"));
System.out.println("subSet方法: "+set.subSet("A", "E"));
System.out.println("tailSet方法: "+set.tailSet("C"));
}
}
输出结果为:
初始化TreeSet: [A, B, C, D, E]
headSet方法: [A, B]
subSet方法: [A, B, C, D]
tailSet方法: [C, D, E]
热门文章
优秀文章