当前位置: 首页 > 图灵资讯 > 技术篇> JAVA SET创建

JAVA SET创建

来源:图灵教育
时间:2023-08-17 09:50:42

JAVA SET创建

在Java编程语言中,Set是一种集合类,用于存储不重复的元素。Set接口继承了Collection接口,在集合中没有定义位置的概念,也没有提供对元素的索引访问。Set使用哈希表作为底层实现,因此添加、删除和搜索操作的时间复杂性是O(1)。

Set的特点

Set集合的特点如下:

  • 不允许重复元素:Set集合中不允许存储重复元素,如果试图添加重复元素,则不会成功。
  • 无序性:Set集合中的元素没有具体的顺序,元素的存储顺序与添加顺序无关。
  • 它可以包含null元素:Set集合可以存储null元素,但只能存储一个null元素,不能存储多个元素。
创建Set集合

Hashsettet可用于Java、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集合。它可以保证元素的有序性,并根据元素的自然顺序或自定义比较器进行排序。

以下是使用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. 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中用来存储不重复元素的集合类。通过HashSetet、我们可以很容易地创建和操作Treeset和LinkedHashset。根据具体需要,我们可以选择不同的Set实现类别