Home >Java >javaTutorial >SET in Java

SET in Java

DDD
DDDOriginal
2025-01-28 08:08:101036browse

Java Set Detailed Explanation: The collection of the unique element of the unique element

This article will explore the SET interfaces and its main implementation classes in Java to help you understand how to efficiently handle the collection of duplicate elements.

em java " /> Source: Set<E> https://www.php.cn/link/a23F9327866d3bafd064964C9FCB6F <a href=

<.> 1. Java Set interface Introduction

SET interface is a collection that does not allow duplicate elements. It is based on a collection of mathematical operations (collections, intersections, and differences), which is very suitable for the need to ensure the uniqueness of the element.

Main features:

No duplicate elements are allowed.

    can store empty values ​​(except for TreeSet with comparators).
  • The order of element depends on the specific implementation class.
  • <.> 2. The main implementation class of the set interface

<.> 2.1 hashset

Features: Based on the hash table implementation, the order of element is not guaranteed. The average time complexity of adding, deleting and finding operations is O (1), allowing a vacancy.

Applicable scenarios:
    The order of element is not important, and the scenario of high performance basic operation is required.
  • <.> 2.2 Linkedhashset
  • Features:
Inherit the sequence of the insertion of the element, use the two -way linked list maintenance order, the performance is slightly lower than the hashset.
<code class="language-java">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"); // 重复元素,不会添加
        System.out.println(set); // 元素顺序不确定
    }
}</code>

Applicable scenarios: Scenes that need to be predicted in the order of the iterative order.

    The two -way linked list description:
  • Each node contains a value, the reference to the next node and the reference to the ahead of the node, allowing two -way traversing.
  • <.> 2.3 TreeSet
  • Features:
Based on red and black trees (a self -balanced binary search tree), the element is sorted in the natural order (or custom comparator), and O (log n), no empty value is allowed.

Applicable scenarios: Elements that need to be automatically sorted, and you need to sort the scenes of efficient sorting operations.

<code class="language-java">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");
        System.out.println(set); // 保持插入顺序
    }
}</code>

<.> 3. Different set of implementation class comparison

    em java " />
  • <.> 4. The difference between set, list and queue
  • Set: No repetitive elements are allowed to pay attention to the uniqueness of the element.
List:
<code class="language-java">import java.util.TreeSet;
import java.util.Set;

public class TreeSetExample {
    public static void main(String[] args) {
        Set<String> set = new TreeSet<>();
        set.add("Apple");
        set.add("Banana");
        set.add("Orange");
        System.out.println(set); // 元素按字母顺序排序
    }
}</code>
Allow duplicate elements and keep the insertion order.

Queue: Follow the principle of advanced first (FIFO) for sequential treatment.

Set<E> I hope this article can help you better understand and use the set interface in Java.  Choosing a suitable SET implementation class depends on your specific needs and application scenarios. </p>

The above is the detailed content of SET in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn