JAVA SET创建
在Java编程语言中,Set是一种集合类,用于存储不重复的元素。Set接口继承了Collection接口,在集合中没有定义位置的概念,也没有提供对元素的索引访问。Set使用哈希表作为底层实现,因此添加、删除和搜索操作的时间复杂性是O(1)。
Set的特点Set集合的特点如下:
- 不允许重复元素:Set集合中不允许存储重复元素,如果试图添加重复元素,则不会成功。
- 无序性:Set集合中的元素没有具体的顺序,元素的存储顺序与添加顺序无关。
- 它可以包含null元素:Set集合可以存储null元素,但只能存储一个null元素,不能存储多个元素。
Hashsettet可用于Java、Treeset和LinkedHashset等类创建Set集合。
1. HashSetHashset是基于哈希表的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. TreeSetTreeset是基于红黑树的Set集合。它可以保证元素的有序性,并根据元素的自然顺序或自定义比较器进行排序。
以下是使用Treset创建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. LinkedHashSetLinkedHashset是基于链表和哈希表的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中用来存储不重复元素的集合类。通过HashSetet、我们可以很容易地创建和操作Treeset和LinkedHashset。根据具体需要,我们可以选择不同的Set实现类别