JAVA SET创建
在Java编程语言中,Set是一种集合类,它是用来存储不重复元素的。Set接口继承自Collection接口,它在集合中没有定义位置的概念,也没有提供对元素的索引访问。Set使用哈希表作为底层实现,因此添加、删除和查找操作的时间复杂度都是O(1)。
Set的特点
Set集合的特点如下:
- 不允许重复元素:Set集合中不允许存储重复的元素,如果尝试添加重复元素,将不会成功。
- 无序性:Set集合中的元素没有特定的顺序,元素的存储顺序与添加的顺序无关。
- 可以包含null元素:Set集合可以存储null元素,但是只能存储一个null元素,不能存储多个。
创建Set集合
在Java中,可以使用HashSet、TreeSet和LinkedHashSet等类来创建Set集合。
1. HashSet
HashSet是基于哈希表实现的Set集合。它不保证元素的顺序,内部使用哈希函数来计算元素的存储位置,因此添加、删除和查找操作的时间复杂度都是O(1)。
以下是使用HashSet创建Set集合的示例代码:
import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
// 添加元素
set.add("apple");
set.add("banana");
set.add("orange");
set.add("apple"); // 添加重复元素,不会成功
// 遍历元素
for (String element : set) {
System.out.println(element);
}
// 判断元素是否存在
boolean containsApple = set.contains("apple");
System.out.println("Set contains apple: " + containsApple);
// 删除元素
set.remove("apple");
// 清空集合
set.clear();
}
}
2. TreeSet
TreeSet是基于红黑树实现的Set集合。它可以保证元素的有序性,根据元素的自然顺序或自定义比较器进行排序。
以下是使用TreeSet创建Set集合的示例代码:
import java.util.Set;
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
Set<Integer> set = new TreeSet<>();
// 添加元素
set.add(3);
set.add(1);
set.add(2);
set.add(3); // 添加重复元素,不会成功
// 遍历元素
for (Integer element : set) {
System.out.println(element);
}
// 判断元素是否存在
boolean containsOne = set.contains(1);
System.out.println("Set contains 1: " + containsOne);
// 删除元素
set.remove(1);
// 清空集合
set.clear();
}
}
3. LinkedHashSet
LinkedHashSet是基于链表和哈希表实现的Set集合。它可以保留元素的插入顺序,内部使用哈希函数计算元素存储位置,并使用链表维护元素的插入顺序。
以下是使用LinkedHashSet创建Set集合的示例代码:
import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSetExample {
public static void main(String[] args) {
Set<String> set = new LinkedHashSet<>();
// 添加元素
set.add("apple");
set.add("banana");
set.add("orange");
set.add("apple"); // 添加重复元素,不会成功
// 遍历元素
for (String element : set) {
System.out.println(element);
}
// 判断元素是否存在
boolean containsApple = set.contains("apple");
System.out.println("Set contains apple: " + containsApple);
// 删除元素
set.remove("apple");
// 清空集合
set.clear();
}
}
总结
Set是Java中一种用来存储不重复元素的集合类。通过HashSet、TreeSet和LinkedHashSet等类,我们可以轻松地创建和操作Set集合。根据具体的需求,我们可以选择不同的Set实现类来满