一、Set集合接口特点
【遵从】Set接口的实现, 具有Set接口的特征:
- 无序添加程序和展示程序的顺序不一样(无序)
- 不可重复
常用方法
方法名 | 描述 |
---|---|
add(E e) | 确保此 collection 包含指定的元素(可选操作)。 |
addAll(Collection<? extends E> c) | 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。 |
clear() | 移除此 collection 中的所有元素(可选操作)。 |
contains(Object o) | 如果此 collection 包含指定的元素,则返回true。 |
containsAll(Collection<?> c) | 如果此 collection 包含指定 collection 中的所有元素,则返回 true。 |
equals(Object o) | 比较此 collection 与指定对象是否相等。 |
isEmpty() | 如果此 collection 不包含元素,则返回true。 |
iterator() | 返回在此 collection 的元素上进行迭代的迭代器。 |
remove(Object o) | 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。 |
removeAll(Collection<?> c) | 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。 |
retainAll(Collection<?> c) | 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。 |
size() | 返回此 collection 中的元素数。 |
toArray() | 返回包含此 collection 中所有元素的数组。 |
排重方法:重写equals和hashCode方法
虽然Set集合不可重复,但是其默认的排重方式是通过对比hashCode值以及元素地址实现的,而在实际的使用中,我们希望通过元素的某些属性实现排重和查重,这就需要重写equals和hashCode方法。
public class Employee {
private String name;
private int age;
private String gender;
private double salary;
public Employee() {
}
public Employee(String name,