Java TreeMap和TreeSet的区别

Java TreeMap和TreeSet的区别

TreeSet 主要是java中SortedSet的一个实现,其中不允许重复,对象以排序和升序的方式存储。

树组的一些重要特征是:

  • 在TreeSet中不允许有重复的值,因为它实现了SortedSet接口。
  • TreeSet中的对象是按升序存储的。
  • 在TreeSet中,元素的插入顺序并不保持。

TreeMap 是Map接口的一个实现。TreeMap也是NavigableMap和AbstractMap类的一个实现。

树状图的一些重要特征是:_

  • 在TreeMap中,不允许出现空键(像Map),因此会抛出NullPointerException(多个空值可能与不同的键相关)。
  • TreeMap不支持Entry.setValue方法。

下面是Java中TreeSet和TreeMap的图示。

示例 1:

// Illustration of TreeMap and TreeSet in Java
import java.io.*;
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        TreeSet<Integer> set = new TreeSet<>();
        set.add(3);
        set.add(4);
        set.add(3);
        set.add(5);
  
        TreeMap<Integer, Integer> tm = new TreeMap<>();
        tm.put(2, 4);
        tm.put(3, 5);
        tm.put(4, 5);
        tm.put(2, 3);
        System.out.println(set);
        System.out.println(tm);
    }
}
Java

输出

[3, 4, 5]
{2=3, 3=5, 4=5}
Java

示例 2:

// Illustration of TreeMap and TreeSet in Java
import java.io.*;
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        TreeSet<String> l = new TreeSet<>();
        l.add("geeks");
        l.add("FOR");
        l.add("geeks");
        l.add("tutorial");
  
        TreeMap<Integer, String> l1 = new TreeMap<>();
  
        l1.put(1, "geeks");
        l1.put(2, "FOR");
        l1.put(3, "geeks");
        l1.put(4, "tutorial");
        System.out.println(l);
        System.out.println(l1);
    }
}
Java

输出

[FOR, geeks, tutorial]
{1=geeks, 2=FOR, 3=geeks, 4=tutorial}
Java
S.No. TreeSet TreeMap
1. TreeSet在Java中实现了SortedSet。 树状图在Java中实现了Map接口
2. TreeSet在java中存储了一个单一的对象。 TreeMap存储了两个对象,一个键和一个值。
3. TreeSet不允许重复java中的Object。 java中的TreeMap允许值的重复。
4. TreeSet在Java中实现了NavigableSet。 TreeMap在Java中实现了NavigableMap。
5. TreeSet是根据对象来排序的。 TreeMap是根据键来排序的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册