Java 中的 Set 是一种集合,它继承自 Collection 接口,它用于存储不重复的元素。Java 中提供了多个 Set 实现类,包括 HashSet、LinkedHashSet、TreeSet 等。下面是一个 HashSet 的示例:
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
// 创建一个 HashSet 对象
Set<String> set = new HashSet<String>();
// 添加元素
set.add("Java");
set.add("Python");
set.add("C++");
set.add("JavaScript");
set.add("Java");
// 输出元素个数
System.out.println("元素个数:" + set.size());
// 遍历元素
for (String str : set) {
System.out.println(str);
}
// 判断是否包含元素
System.out.println("是否包含 Python:" + set.contains("Python"));
// 删除元素
set.remove("C++");
// 清空集合
set.clear();
}
}在上面的代码中,首先创建了一个 HashSet 对象,然后使用 add() 方法添加元素,由于 Set 是不重复的,所以重复的元素只会保留一个。使用 size() 方法可以获取元素的个数,使用 contains() 方法可以判断集合中是否包含指定的元素,使用 remove() 方法可以删除元素,使用 clear() 方法可以清空集合。最后使用 for-each 循环遍历集合中的元素。
输出结果如下:
元素个数:4
Java
Python
C++
JavaScript
是否包含 Python:true需要注意的是,Set 接口中的元素是无序的,即元素的添加和删除顺序与元素在集合中的位置无关。如果需要有序的集合,可以使用 TreeSet 或 LinkedHashSet。
Set 接口提供了许多常用的方法,如 add()、contains()、remove()、clear()、size()、isEmpty()、iterator() 等,具体可以参考 Java 官方文档。
除了 Collection 接口提供的方法外,Set 接口还提供了一些特有的方法,下面简单介绍一下:
add(E e):将指定的元素添加到集合中。如果元素已经存在,则不会重复添加,返回 false。addAll(Collection<? extends E> c):将指定集合中的所有元素添加到当前集合中。remove(Object o):从集合中删除指定元素。removeIf(Predicate<? super E> filter):根据指定的条件删除集合中的元素。retainAll(Collection<?> c):仅保留当前集合与指定集合的交集,即删除不属于指定集合的元素。contains(Object o):判断集合是否包含指定元素。containsAll(Collection<?> c):判断当前集合是否包含指定集合中的所有元素。isEmpty():判断集合是否为空。size():获取集合中元素的个数。clear():清空集合中的所有元素。下面是一个 TreeSet 的示例,TreeSet 是基于红黑树实现的有序集合,它的元素按照自然顺序排序或者指定的排序方式进行排序:
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
// 创建一个 TreeSet 对象
TreeSet<Integer> set = new TreeSet<Integer>();
// 添加元素
set.add(5);
set.add(2);
set.add(8);
set.add(1);
// 输出元素个数
System.out.println("元素个数:" + set.size());
// 遍历元素
for (Integer num : set) {
System.out.println(num);
}
// 判断是否包含元素
System.out.println("是否包含 5:" + set.contains(5));
// 删除元素
set.remove(2);
// 清空集合
set.clear();
}
}在上面的代码中,首先创建了一个 TreeSet 对象,然后使用 add() 方法添加元素,由于 TreeSet 是有序的,所以输出的结果是按照升序排列的。使用 contains() 方法可以判断集合中是否包含指定的元素,使用 remove() 方法可以删除元素,使用 clear() 方法可以清空集合。最后使用 for-each 循环遍历集合中的元素。
输出结果如下:
元素个数:4
1
2
5
8
是否包含 5:true需要注意的是,如果要将自定义对象添加到集合中,需要重写对象的 hashCode() 和 equals() 方法,以保证集合能够正确的去重和比较对象。另外,Set 集合中的元素是无序的,如果需要按照某种顺序进行排序,可以使用 TreeSet。