Java中的Set集合循环遍历及其应用

Java的Set集合是一个不允许存储重复元素的集合,它提供了多种方法来遍历集合中的元素。本文将介绍如何使用Set集合进行循环遍历,并解决一个实际问题,同时提供示例代码和序列图来帮助理解。

Set集合的基本特性

Set集合在Java中主要用于存储不重复的元素,它提供了以下常用方法:

  • add(E e):向集合中添加一个元素。
  • remove(Object o):从集合中移除指定元素。
  • contains(Object o):检查集合中是否包含指定元素。
  • size():返回集合中的元素数量。
  • clear():清空集合中的所有元素。

Set集合的循环遍历

在Java中,Set集合可以通过以下几种方式进行循环遍历:

  1. 使用for-each循环:

    Set<String> set = new HashSet<>();
    for (String item : set) {
        System.out.println(item);
    }
    
  2. 使用迭代器Iterator

    Iterator<String> iterator = set.iterator();
    while (iterator.hasNext()) {
        String item = iterator.next();
        System.out.println(item);
    }
    
  3. 使用Stream API(Java 8及以上版本):

    set.stream().forEach(System.out::println);
    

实际问题:去重并统计元素数量

假设我们有一个字符串列表,需要去除重复的字符串,并统计剩余的不重复字符串的数量。我们可以使用Set集合来解决这个问题。

示例代码

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        // 原始字符串列表
        String[] strings = {"apple", "banana", "orange", "apple", "grape", "banana"};

        // 使用HashSet去除重复的字符串
        Set<String> uniqueStrings = new HashSet<>();
        for (String str : strings) {
            uniqueStrings.add(str);
        }

        // 打印去重后的字符串列表
        System.out.println("Unique strings: " + uniqueStrings);

        // 统计不重复的字符串数量
        int count = uniqueStrings.size();
        System.out.println("Number of unique strings: " + count);
    }
}

序列图

以下是上述代码的执行流程的序列图:

sequenceDiagram
    participant Main
    participant HashSet
    Main->HashSet: add("apple")
    HashSet-->Main: true
    Main->HashSet: add("banana")
    HashSet-->Main: true
    Main->HashSet: add("orange")
    HashSet-->Main: true
    Main->HashSet: add("apple")
    HashSet-->Main: false (重复元素)
    Main->HashSet: add("grape")
    HashSet-->Main: true
    Main->HashSet: add("banana")
    HashSet-->Main: false (重复元素)
    Main->HashSet: size()
    HashSet-->Main: 4
    Main->>+Main: Print unique strings and count
    Main->+Main: Print "Unique strings: [apple, banana, orange, grape]"
    Main->+Main: Print "Number of unique strings: 4"

结论

通过本文,我们学习了如何在Java中使用Set集合进行循环遍历,并通过一个实际问题展示了Set集合在去重和统计元素数量方面的应用。Set集合是一个强大的工具,可以帮助我们处理不重复元素的集合操作。希望本文能够帮助你更好地理解和使用Java中的Set集合。