當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。