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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。