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

TreeSet的一些重要特征是:

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

TreeMap是Map接口的一个实现。TreeMapAbstractMap类一起也是NavigableMap的实现。

TreeMap的一些重要特征是:

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

下面是Java中TreeSetTreeMap的示例:

示例1:

// Illustration of TreeMap and TreeSet in Java
import java.io.*;
import java.util.*;

class YiibaiDemo {
    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:

// Illustration of TreeMap and TreeSet in Java
import java.io.*;
import java.util.*;

class YiibaiDemo {
    public static void main(String[] args)
    {
        TreeSet<String> l = new TreeSet<>();
        l.add("Yiibai");
        l.add("FOR");
        l.add("geeks");
        l.add("tutorial");

        TreeMap<Integer, String> l1 = new TreeMap<>();

        l1.put(1, "Yiibai");
        l1.put(2, "FOR");
        l1.put(3, "geeks");
        l1.put(4, "tutorial");
        System.out.println(l);
        System.out.println(l1);
    }
}

运行结果:

[FOR, Yiibai, tutorial]
{1=Yiibai, 2=FOR, 3=geeks, 4=tutorial}

Java 中TreeMap和TreeSet的区别

S. No TreeSet TreeMap
1 TreeSet在Java中实现了SortedSet。 TreeMap在Java中实现了地图接口。
2 TreeSet在Java中存储一个单一的对象。 TreeMap存储两个对象,一个键和一个值。
3 TreeSet不允许java中的对象重复。 java中的TreeMap允许值的重复。
4 TreeSet在Java中实现了NavigableSet。 在Java中,TreeMap实现了NavigableMap。
5 TreeSet是基于对象进行排序的。 TreeMap是基于键进行排序的。

Java 中TreeMap和TreeSet的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Java 中TreeMap和TreeSet的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-treemap-and-treeset-in-java.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。