Java中 TreeMap 和 TreeSet 的相似之处
TreeSet主要是Java中SortedSet的一个实现,不允许重复,对象按排序升序存储。
TreeMap是 Map Interface 的一个实现。 TreeMap 也是 NavigableMap 和 AbstractMap 类的实现。
Java中 TreeSet 和 TreeMap 之间的相似之处。
- TreeMap 和 TreeSet 都属于Java.util 包。
- 两者都是Java Collection Framework 的一部分。
- 它们不允许空值。
- 两者都排序。排序顺序可以是 Comparable 接口定义的自然排序顺序,也可以是 Comparator 接口定义的自定义排序顺序。
- 它们不同步,因此它们不会在并发应用程序中使用。
- 两者都为任何操作(如 put、get、containsKey、remove)提供 O(log(n)) 时间复杂度。
- TreeSet 和 TreeMap 内部都使用红黑树。
TreeMap 和 TreeSet 的图示:
Java
// Java program to demonstrate some basic functions
// of TreeMap and TreeSet
import java.util.*;
import java.io.*;
class GFG {
public static void main (String[] args) {
TreeSet st=new TreeSet<>();
st.add(4);
st.add(5);
st.add(6);
st.add(8);
st.add(4);
TreeMap tm=new TreeMap<>();
tm.put(2,5);
tm.put(3,6);
tm.put(4,6);
tm.put(2,3);
System.out.println(st);
System.out.println(tm);
}
}
输出
[4, 5, 6, 8]
{2=3, 3=6, 4=6}