Java 【数据结构】 TreeSet&TreeMap(二叉搜索树详解)【神装】
在Java中,TreeSet和TreeMap都是基于红黑树(Red-Black tree)的实现。它们都能够确保元素的排列顺序,并且能够保证元素的唯一性。
TreeSet:
- 底层数据结构是红黑树,确保元素唯一性,且元素按照自然排序进行排列。
- 不允许null值。
- 实现了Set接口。
TreeMap:
- 底层数据结构是红黑树,保证键的唯一性,且键按照自然排序进行排列。
- 不允许null作为键和值。
- 实现了Map接口。
以下是TreeSet和TreeMap的简单示例代码:
import java.util.TreeSet;
import java.util.TreeMap;
public class TreeExample {
public static void main(String[] args) {
// TreeSet示例
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(10);
treeSet.add(5);
treeSet.add(15);
treeSet.add(3);
treeSet.add(7);
for (Integer number : treeSet) {
System.out.println(number);
}
// TreeMap示例
TreeMap<String, Integer> treeMap = new TreeMap<>();
treeMap.put("Alice", 30);
treeMap.put("Bob", 20);
treeMap.put("Charlie", 10);
for (String key : treeMap.keySet()) {
System.out.println(key + ": " + treeMap.get(key));
}
}
}
在这个例子中,TreeSet自动排列了添加的整数,TreeMap按照键(这里是String)进行排列,并存储对应的值(这里是整数)。
评论已关闭