Set的概念和特性以及常用方法
Set可以被认为是一个集合,集合内部是同类型的元素,他们之间没有先后顺序,但是不允许重复!!!
Set中常用的方法有以下几个:
| 返回值 | 方法 |
|---|---|
| boolean | add( ) 向集合中添加元素 |
| 无 | clear( ) 去掉集合中所有的元素 |
| boolean | contains( ) 判断集合中是否包含某一个元素 |
| boolean | isEmpty( ) 判断集合是否为空 |
| Iterator | iterator( ) 主要用于递归集合,返回一个Iterator()对象 |
| boolean | remove(E e) 从集合中去掉特定的对象 |
| int | size( ) 返回集合的大小 |
在Java中Set是一个继承自Collection接口,它主要有以下两个实现类:
TreeSet
TreeSet是基于平衡二叉搜索树(红黑树)实现的Set,因为二叉搜索树中序遍历为有序的(不明白可以看前一篇博客:二叉搜索树的思想,以及增删查改的实现)会多出来这么几种方法:
| 返回值 | 方法 |
|---|---|
| E | first() 返回集合中序遍历第一个 |
| E | last() 返回集合中序遍历最后一个 |
| E | pollFirst() 删除集合中序遍历第一个并返回 |
| E | pollLast() 删除集合中序遍历最后一个并返回 |
| E | floor(E e) 返回比传入元素小的所有元素中最大的一个,包含相等(因为传入的元素可能不在集合中,也可能在集合中,这个方法若传入元素在集合中则返回传入元素,如不在则返回比传入元素小的所有元素中最大的一个) |
| E | lower(E e) 返回比传入元素小的所有元素中最大的一个 |
| E | ceiling(E e) 返回比传入元素大的所有元素中最小的一个(包含传入元素和上面floor()一起理解) |
| E | higher(E e) 返回比传入元素大的所有元素中最小的一个(不包含传入元素) |
下面通过代码演示一下上述方法:
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>();
set.add(1);
set.add(9);
set.add(5);
set.add(3);
set.add(10);
set.add(2);
System.out.println("first " + set.first());
System.out.println("last " + set.last(
本文介绍了Java中的Set概念和特性,包括Set的基本方法,并详细讲述了基于红黑树实现的TreeSet以及基于哈希表实现的HashSet。TreeSet提供有序操作如first()、last()等,而HashSet则不支持此类操作。使用TreeSet需实现Comparable或提供Comparator,HashSet则需重写hashCode()和equals()方法。
最低0.47元/天 解锁文章

4044

被折叠的 条评论
为什么被折叠?



