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


Java ConcurrentSkipListSet subSet()用法及代碼示例


subSet(E fromElement, E toElement)

java.util.concurrent.ConcurrentSkipListSet的subSet()方法是Java中的內置函數,該函數返回該集合部分的視圖,其元素範圍從fromElement(包括在內)到toElement(不包括在內)。 (如果fromElement和toElement相等,則返回的集合為空。)返回的集合受該集合支持,因此返回的集合中的更改將反映在該集合中,反之亦然。返回的集合支持該集合支持的所有可選集合操作。

用法:

public NavigableSet subSet(E fromElement,
                     E toElement)

參數:該函數接受以下參數:


  • fromElement –返回集合的低端點(包括端點)。
  • toElement –返回集合的高端點(不包括)

返回值:該函數返回一個NavigableSet,該視圖是該集合的一部分的視圖,其元素範圍從fromElement(包括)到toElement(不包括)。

異常:該函數引發以下異常:

  • ClassCastException–如果無法使用此集合的比較器將fromElement和toElement相互比較(或者,如果該集合沒有比較器,則使用自然順序)。如果fromElement或toElement無法與集合中當前的元素進行比較,則實現可能會(但並非必須)拋出此異常。
  • NullPointerException –如果fromElement或toElement為null
  • IllegalArgumentException–如果fromElement大於toElement;或者此集合本身具有受限範圍,並且fromElement或toElement不在範圍的範圍內。

以下示例程序旨在說明ConcurrentSkipListSet.subSet()方法:

示例1:

// Java program to demonstrate subSet() 
// method of ConcurrentSkipListSet 
  
// Java Program Demonstrate subSet() 
// method of ConcurrentSkipListSet */ 
import java.util.NavigableSet; 
import java.util.concurrent.ConcurrentSkipListSet; 
  
class ConcurrentSkipListSetSubSetExample1 { 
    public static void main(String[] args) 
    { 
  
        // Initializing the set 
        ConcurrentSkipListSet<Integer> 
            set = new ConcurrentSkipListSet<Integer>(); 
  
        // Adding elements to this set 
        for (int i = 0; i <= 10; i++) 
            set.add(i); 
  
        // Printing the elements of the set 
        System.out.println("Contents of the set: " + set); 
  
        // Creating a subsetset object 
        NavigableSet<Integer> sub_set = set.subSet(2, 8); 
  
        // Printing the elements of the descending set 
        System.out.println("Contents of the subset: " + sub_set); 
    } 
}
輸出:
Contents of the set: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Contents of the subset: [2, 3, 4, 5, 6, 7]

示例2:

// Java program to demonstrate subSet() 
// method of ConcurrentSkipListSet 
  
// Java Program Demonstrate subSet() 
// method of ConcurrentSkipListSet */ 
import java.util.NavigableSet; 
import java.util.concurrent.ConcurrentSkipListSet; 
  
class ConcurrentSkipListSetSubSetExample2 { 
    public static void main(String[] args) 
    { 
  
        // Initializing the set 
        ConcurrentSkipListSet<Integer> 
            set = new ConcurrentSkipListSet<Integer>(); 
  
        // Adding elements to this set 
        for (int i = 0; i <= 10; i++) 
            set.add(i); 
  
        // Printing the elements of the set 
        System.out.println("Contents of the set: " + set); 
  
        try { 
            // Creating a subsetset object 
            NavigableSet<Integer> sub_set = set.subSet(2, null); 
        } 
        catch (Exception e) { 
            System.out.println("Exception: " + e); 
        } 
    } 
}
輸出:
Contents of the set: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Exception: java.lang.NullPointerException

subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

java.util.concurrent.ConcurrentSkipListSet的subSet()方法是Java中的內置函數,該函數返回該集合部分的視圖,其元素範圍從fromElement到toElement。如果fromElement和toElement相等,則除非fromInclusive和toInclusive均為true,否則返回的集合為空。返回的集合受此集合支持,因此返回的集合中的更改將反映在此集合中,反之亦然。返回的集合支持該集合支持的所有可選集合操作。嘗試插入超出其範圍的元素時,返回的集合將引發IllegalArgumentException。

用法:

public NavigableSet subSet(E fromElement,
                     boolean fromInclusive,
                     E toElement,
                     boolean toInclusive)

參數:該函數接受以下參數:


  • fromElement–返回集合的低端點
  • fromInclusive–如果低端點將包含在返回的視圖中,則為true
  • toElement–返回集合的高端點
  • toInclusive–如果高端端點要包含在返回的視圖中,則為true

返回值:該函數返回此集合部分的視圖,其元素範圍從fromElement(包括)到toElement(不包括)。

異常:該函數引發以下異常:

  • ClassCastException–如果無法使用此集合的比較器將fromElement和toElement相互比較(或者,如果該集合沒有比較器,則使用自然順序)。如果fromElement或toElement無法與集合中當前的元素進行比較,則實現可能會(但並非必須)拋出此異常。
  • NullPointerException –如果fromElement或toElement為null
  • IllegalArgumentException–如果fromElement大於toElement;或者此集合本身具有受限範圍,並且fromElement或toElement不在範圍的範圍內。

以下示例程序旨在說明ConcurrentSkipListSet.subSet()方法:
示例3:

// Java Program Demonstrate subSet() 
// method of ConcurrentSkipListSet */ 
import java.util.NavigableSet; 
import java.util.concurrent.ConcurrentSkipListSet; 
  
class ConcurrentSkipListSetSubSetExample3 { 
    public static void main(String[] args) 
    { 
  
        // Initializing the set 
        ConcurrentSkipListSet<Integer> 
            set = new ConcurrentSkipListSet<Integer>(); 
  
        // Adding elements to this set 
        for (int i = 0; i <= 10; i++) 
            set.add(i); 
  
        // Printing the elements of the set 
        System.out.println("Contents of the set: " + set); 
  
        // Creating a subsetset object 
        NavigableSet<Integer> sub_set = set.subSet(2, true, 8, true); 
  
        // Printing the elements of the descending set 
        System.out.println("Contents of the subset: " + sub_set); 
    } 
}
輸出:
Contents of the set: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Contents of the subset: [2, 3, 4, 5, 6, 7, 8]

參考:
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListSet.html#subSet-E-E-



相關用法


注:本文由純淨天空篩選整理自rupesh_rao大神的英文原創作品 ConcurrentSkipListSet subSet() method in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。