集合Set

Set是Java中的一种数据集合类型,它是一个不允许重复元素的集合。Set中的元素没有特定的顺序,因此不能通过索引来访问元素

Set的主要方法(HashSet)

1. add()

向Set中添加元素,如果元素已经存在,则不会添加。

Set<String> set = new HashSet<>();  //创建一个HashSet
set.add("apple");
set.add("banana");
set.add("apple"); // 不会添加```

2. remove()

从Set中删除指定元素。

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");

set.remove("apple");

3. contains()

判断Set中是否包含指定元素。

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
boolean containsApple = set.contains("apple"); // true
boolean containsOrange = set.contains("orange"); // false

4. size()

获取Set中元素的数量。

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");

int size = set.size(); // 2

5. clear()

清空Set中的所有元素。

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");

set.clear();

Set的使用示例

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

public class SetExample {
    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中的元素数量:" + set.size()); // 3

        boolean containsApple = set.contains("apple"); // true
        boolean containsOrange = set.contains("orange"); // true
        boolean containsGrape = set.contains("grape"); // false

        System.out.println("Set中是否包含apple:" + containsApple); // true
        System.out.println("Set中是否包含orange:" + containsOrange); // true
        System.out.println("Set中是否包含grape:" + containsGrape); // false

        set.remove("apple");

        System.out.println("Set中的元素数量:" + set.size()); // 2

        set.clear();

        System.out.println("Set中的元素数量:" + set.size()); // 0
    }
}

扩展阅读:Set的实现类

Java中有多种Set的实现类,常用的有HashSetLinkedHashSet、和TreeSet。最常用的是HashSet.

1. HashSet

HashSet是基于哈希表实现的Set,它不保证元素的顺序HashSet中的元素是无序的,因此不能通过索引来访问元素

Set<String> set = new HashSet<>();

2. LinkedHashSet 选学

LinkedHashSet是基于哈希表和链表实现的Set,它保证元素的顺序与添加顺序一致

Set<String> set = new LinkedHashSet<>();

3. TreeSet 选学

TreeSet对元素按照自然顺序自动从小大到大排序

import java.util.TreeSet;

public class TreeSetExample {
    public static void main(String[] args) {
        TreeSet<Integer> set = new TreeSet<>();
        set.add(3);
        set.add(1);
        set.add(2);

        System.out.println("TreeSet中的元素:" + set); // [1, 2, 3]

        boolean containsOne = set.contains(1); // true
        boolean containsFour = set.contains(4); // false

        System.out.println("TreeSet中是否包含1:" + containsOne); // true
        System.out.println("TreeSet中是否包含4:" + containsFour); // false

        set.remove(2);

        System.out.println("TreeSet中的元素:" + set); // [1, 3]

        int first = set.first(); // 1
        int last = set.last(); // 3

        System.out.println("TreeSet中的第一个元素:" + first); // 1
        System.out.println("TreeSet中的最后一个元素:" + last); // 3
    }
}