Java集合TreeSet的学习与总结

TreeSet属于Set集合框架,可以保持元素的有序性。TreeSet是依赖TreeMap实现的,TreeMap内部(TreeMap分析)是采用红黑树实现的。

这篇博客主要介绍一下TreeSet的一些重要操作。

1. Ceiling(E e)和floor(E e)操作

这个Ceiling()操作可以获取在TreeSet集合中比指定元素大于或等于的元素中的最小元素。相对应的floor()操作可以获取在TreeSet集合中比指定元素小于或等于的元素中的最大元素。

形象的理解,这就是把指定元素当作是地板或者是天花板,然后在TreeSet集合中去截取元素。

2. first()和last()操作

这两个操作分别是返回集合中第一个元素(最小)和最后一个元素(最大)。

3. lower(E e)和higher(E e)操作

lower()返回在集合中严格小于e(不包含e)的元素中的最大元素。相应的higher()返回集合中严格大于e的元素中的最小元素。要是它们找不到合适的元素,那么就都返回null。

4. pollFirst()和pollLast()操作

可以类比队列中的poll()操作。pollFirst()返回并移除集合中的第一个元素(最小),pollLast()返回并移除集合中的最后一个元素(最大)。

5. headSet(E e)和tailSet(E e)操作

headSet()返回集合中所有严格小于e的元素的一个视图(SortedSet< E>)。tailSet()相对应的返回所有严格大于e的所有元素的一个视图。

它都还有另外一个版本 headSet(E toElement, boolean inclusive)和 tailSet(E fromElement, boolean inclusive)。如果inclusive为true,那么这两个版本函数返回的视图中就会包含等于e的元素。

6. 求子集操作subSet(E fromElement, E toElement)

会返回一个从fromElement到toElement范围的元素集合视图(SortedSet< E>)。

也有另外一个版本 subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)。两个boolean值变量分别表示是否包含等于fromElement和toElement的集合元素。

你可能感兴趣的:(Java学习)