Set接口 特性:元素没有先后顺序且不允许重复
Update date:
Set接口(重点)
基本概念
java.util.Set接口是Collection接口的子接口,元素没有先后放入次序,并且不允许重复
该接口的主要实现类有:HashSet类 和 TreeSet类。
其中HashSet类的底层是采用哈希表进行数据管理的。
其中TreeSet类的底层是采用二叉树进行数据管理的。
此类最大的作用是去重。
Set接口的常用方法参考Collection接口即可。
boolean add(E e)
如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。
boolean addAll(Collection<? extends E> c)
如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中(可选操作)。
void clear()
移除此 set 中的所有元素(可选操作)。
boolean contains(Object o)
如果 set 包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c)
如果此 set 包含指定 collection 的所有元素,则返回 true。
boolean equals(Object o)
比较指定对象与此 set 的相等性。
int hashCode()
返回 set 的哈希码值。
boolean isEmpty()
如果 set 不包含元素,则返回 true。
Iterator<E> iterator()
返回在此 set 中的元素上进行迭代的迭代器。
boolean remove(Object o)
如果 set 中存在指定的元素,则将其移除(可选操作)。
boolean removeAll(Collection<?> c)
移除 set 中那些包含在指定 collection 中的元素(可选操作)。
boolean retainAll(Collection<?> c)
仅保留 set 中那些包含在指定 collection 中的元素(可选操作)。
int size()
返回 set 中的元素数(其容量)。
Object[] toArray()
返回一个包含 set 中所有元素的数组。
<T> T[]
toArray(T[] a)
返回一个包含此 set 中所有元素的数组;返回数组的运行时类型是指定数组的类型。
Iterator
迭代就是遍历/访问的意思,通俗来说,使用该方法的返回值可以访问集合任意元素
- Iterator接口中的常用方法有:
boolean hasNext() - 用于判断当前集合中是否拥有可以访问的元素,如有返回true;
E next() - 获取一个元素返回后并指向下一个元素。
void remove() - 用于删除集合中刚刚获取到的元素。
1 |
|
注意:
使用迭代器访问集合中的元素时,不允许使用集合自己的remove()方法来删除元素,否则会产生并发修改异常,应该使用迭代器自己的remove()方法。
增强版的for循环(for each结构)
(1)语法格式
for(元素类型 变量名 : 数组名/集合名){
循环体;
}
(2)执行流程
不断地从数组/集合中取出一个元素赋值给变量名,然后在循环体中使用变量名处理,
直到取完所有元素为止。