📅  最后修改于: 2023-12-03 15:16:22.204000             🧑  作者: Mango
ConcurrentSkipListSet是Java中一个并发安全的有序集合,可以高效地支持并发访问和修改。而tailSet()方法则是ConcurrentSkipListSet中用于获取集合中高于或等于某个给定元素的子集视图的方法。
public ConcurrentSkipListSet<E> tailSet(E fromElement)
| 参数 | 说明 | |---|---| | fromElement | 开始截取元素的元素值 |
返回一个ConcurrentSkipListSet,其中包含高于或等于fromElement元素的所有元素。
import java.util.concurrent.ConcurrentSkipListSet;
public class TailSetTest {
public static void main(String[] args) {
ConcurrentSkipListSet<Integer> set = new ConcurrentSkipListSet<>();
set.add(1);
set.add(3);
set.add(5);
set.add(7);
set.add(9);
set.add(11);
System.out.println("原集合:" + set); // 输出:[1, 3, 5, 7, 9, 11]
ConcurrentSkipListSet<Integer> tailSet = set.tailSet(5);
System.out.println("截取后的子集合:" + tailSet); // 输出:[5, 7, 9, 11]
tailSet.add(13);
System.out.println("截取后的子集合添加元素后:" + tailSet); // 输出:[5, 7, 9, 11, 13]
System.out.println("原集合:" + set); // 输出:[1, 3, 5, 7, 9, 11, 13]
}
}
首先创建一个ConcurrentSkipListSet集合,并添加一些整数。然后调用tailSet()方法,并传入5作为fromElement参数,即将返回高于或等于5的所有元素的子集视图。最后,我们向截取后的子集合中添加一个元素,并输出截取后的子集合和原集合,可以看到,截取后的子集合添加元素后,原集合也随之发生了变化。
## 示例
```java
import java.util.concurrent.ConcurrentSkipListSet;
public class TailSetTest {
public static void main(String[] args) {
ConcurrentSkipListSet<Integer> set = new ConcurrentSkipListSet<>();
set.add(1);
set.add(3);
set.add(5);
set.add(7);
set.add(9);
set.add(11);
System.out.println("原集合:" + set); // 输出:[1, 3, 5, 7, 9, 11]
ConcurrentSkipListSet<Integer> tailSet = set.tailSet(5);
System.out.println("截取后的子集合:" + tailSet); // 输出:[5, 7, 9, 11]
tailSet.add(13);
System.out.println("截取后的子集合添加元素后:" + tailSet); // 输出:[5, 7, 9, 11, 13]
System.out.println("原集合:" + set); // 输出:[1, 3, 5, 7, 9, 11, 13]
}
}
```