Java中的AbstractSet add()方法示例
在Java中,我们常常需要使用集合来存储一组有序或无序的数据。集合的实现类非常多,其中之一就是AbstractSet。AbstractSet是一个抽象类,实现了Set接口,它提供了一些基本的集合操作,开发者可以在这个基础上构建自己需要的集合。
本篇文章主要介绍AbstractSet中的add()方法。add()方法用于向集合中添加一个元素。下面我们来看一下add()方法的详细介绍和使用示例。
add()方法介绍
add(E e)方法用于向集合中添加一个元素,返回值为boolean类型。如果元素成功添加到集合中,则返回true,否则返回false。如果集合中已经存在该元素,则不会再次添加,返回false。
在实际使用中,我们通常会将add()方法和contains()方法搭配使用,来保证向集合中添加的元素不会重复。例如:
AbstractSet<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
if(!set.contains(3)) {
set.add(3);
}
在上面的代码中,我们首先创建了一个HashSet集合,然后依次向集合中添加了元素1和元素2。接着,我们使用contains()方法判断集合中是否已经存在元素3,如果不存在,就使用add()方法向集合中添加元素3。这样,我们就保证了集合中不会有重复元素。
示例
下面我们来看一下具体的使用示例。首先,我们定义一个Animal类,这个类有两个成员变量:name和age。
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
接着,我们创建一个AnimalSet类,它继承自AbstractSet,并实现了addAll()和iterator()方法。
public class AnimalSet extends AbstractSet<Animal> {
private List<Animal> animals = new ArrayList<>();
@Override
public Iterator<Animal> iterator() {
return animals.iterator();
}
@Override
public int size() {
return animals.size();
}
@Override
public boolean add(Animal animal) {
if (!animals.contains(animal)) {
animals.add(animal);
return true;
} else {
return false;
}
}
@Override
public boolean addAll(Collection<? extends Animal> c) {
boolean modified = false;
for (Animal animal : c) {
if (add(animal)) {
modified = true;
}
}
return modified;
}
}
在AnimalSet中,我们重写了add()方法,来保证集合中不会有重复元素。具体来说,我们在add()方法中首先使用contains()方法检查集合中是否已经存在该元素,如果不存在,就将元素添加到集合中。另外,我们还实现了addAll()方法,用于向集合中添加一组元素。
现在,我们来使用一下AnimalSet类。首先,我们创建三个Animal对象:
Animal dog = new Animal("dog", 3);
Animal cat = new Animal("cat", 2);
Animal bird = new Animal("bird", 1);
接着,我们创建一个AnimalSet集合,向集合中添加上面三个Animal对象,并输出集合的大小。
AnimalSet animalSet = new AnimalSet();
animalSet.add(dog);
animalSet.add(cat);
animalSet.add(bird);
System.out.println("集合的大小为:" + animalSet.size());
输出结果为:
集合的大小为:3
可以看到,AnimalSet集合中成功添加了三个元素。接着,我们向集合中再添加一个Animal对象,并输出集合的大小。
Animal fish = newAnimal("fish", 1);
animalSet.add(fish);
System.out.println("集合的大小为:" + animalSet.size());
输出结果为:
集合的大小为:4
可以看到,由于集合中还没有名字为”fish”、年龄为1的动物,所以将该动物成功添加到了集合中。
接下来,我们再向集合中添加一个已经存在的Animal对象,并输出集合的大小。
animalSet.add(dog);
System.out.println("集合的大小为:" + animalSet.size());
输出结果为:
集合的大小为:4
可以看到,由于集合中已经存在了名字为”dog”、年龄为3的动物,所以该动物并没有被添加到集合中,集合的大小仍然为4。
结论
通过本篇文章的介绍,我们了解了AbstractSet中的add()方法。add()方法用于向集合中添加一个元素,它的返回值为boolean类型,表示元素是否成功添加到集合中。通过重写add()方法,我们可以在向集合中添加元素时保证集合中不会有重复元素。