当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java TreeMap和TreeSet的区别用法及代码示例


TreeSet主要是SortedSet在java中的实现,不允许重复,对象按升序存储。

TreeSet 的一些重要函数包括:

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

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

TreeMap 的一些重要函数包括:

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

下面是TreeSet和TreeMap在Java中的图示:

示例 1:

Java


// 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); 
    } 
}
输出
[3, 4, 5]
{2=3, 3=5, 4=5}

示例 2:

Java


// 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); 
    } 
}
输出
[FOR, geeks, tutorial]
{1=geeks, 2=FOR, 3=geeks, 4=tutorial}
S. 编号

TreeSet

TreeMap

1. TreeSet 在 Java 中实现SortedSet。 TreeMap 用Java实现Map接口
2. TreeSet 在java中存储单个对象。 TreeMap存储两个Object,一键一值。
3. TreeSet 不允许在 java 中重复对象。 java中的TreeMap允许重复值。
4. TreeSet 在 Java 中实现NavigableSet。 TreeMap 在 Java 中实现NavigableMap。
5. TreeSet根据对象排序。 TreeMap 根据键排序。


相关用法


注:本文由纯净天空筛选整理自sambhavshrivastava20大神的英文原创作品 Difference between TreeMap and TreeSet in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。