Java : Set 示例

Java 中的 Set (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 Set<E> 方法的代码示例。

注解 :

  • 本文可能使用了翻译软件以方便阅读。 另请查看英文原文

简介

不包含重复元素的集合。更正式地说,集合不包含任何元素 e1 和 e2 的对(e1.equals(e2)),并且最多包含一个空元素。顾名思义,此接口模拟了数学集合抽象。 (机器翻译)

Class diagram

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

set.add("a");
set.add("b");
set.add("c");

System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3

System.out.println(set.contains("a")); // true
System.out.println(set.contains("b")); // true
System.out.println(set.contains("X")); // false

Methods

boolean add (E e)

如果指定元素尚不存在,则将其添加到此集合中(可选操作)。 (机器翻译)

final Set<String> set = new HashSet<>();
System.out.println(set); // []

System.out.println(set.add("a")); // true
System.out.println(set); // [a]

System.out.println(set.add("b")); // true
System.out.println(set); // [a, b]

System.out.println(set.add("c")); // true
System.out.println(set); // [a, b, c]

System.out.println(set.add("a")); // false
System.out.println(set); // [a, b, c]

boolean addAll (Collection<? extends E> c)

如果指定集合中的所有元素尚不存在,则将其添加到此集合中(可选操作)。 (机器翻译)

final var src = Set.of("a", "b", "c");

{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.addAll(Set.of("d", "e", "f"))); // true
    System.out.println(set);  // [a, b, c, d, e, f]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.addAll(Set.of("a", "b", "c"))); // false
    System.out.println(set); // [a, b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.addAll(Set.of("a", "c", "e", "f"))); // true
    System.out.println(set); // [a, b, c, e, f]
}

void clear ()

从该集合中删除所有元素(可选操作)。 (机器翻译)

final Set<String> set = new HashSet<>();
System.out.println(set); // []

set.add("a");
System.out.println(set); // [a]

set.add("b");
System.out.println(set); // [a, b]

set.clear();
System.out.println(set); // []

boolean contains (Object o)

如果此集合包含指定元素,则返回 true。 (机器翻译)

final var set = Set.of("a", "b", "c");
System.out.println(set); // [a, b, c]

System.out.println(set.contains("")); // false
System.out.println(set.contains("a")); // true
System.out.println(set.contains("b")); // true
System.out.println(set.contains("c")); // true

System.out.println(set.contains("X")); // false
System.out.println(set.contains("abc")); // false

boolean containsAll (Collection<?> c)

如果此集合包含指定集合的​​所有元素,则返回 true。 (机器翻译)

final var set = Set.of("a", "b", "c");
System.out.println(set); // [c, b, a]

System.out.println(set.containsAll(Set.<String>of())); // true

System.out.println(set.containsAll(Set.of("a"))); // true
System.out.println(set.containsAll(Set.of("a", "b"))); // true
System.out.println(set.containsAll(Set.of("b", "a"))); // true
System.out.println(set.containsAll(Set.of("c", "b", "a"))); // true

System.out.println(set.containsAll(Set.of("X"))); // false
System.out.println(set.containsAll(Set.of("a", "X"))); // false
System.out.println(set.containsAll(Set.of("a", "b", "c", "X"))); // false

static <E> Set<E> copyOf (Collection<? extends E> coll)

返回包含给定 Collection 元素的不可修改的 Set。 (机器翻译)

final Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");

System.out.println(set); // [a, b, c]

final var copiedSet = Set.copyOf(set);
System.out.println(copiedSet); // [a, b, c]

set.add("d");
System.out.println(set); // [a, b, c, d]
System.out.println(copiedSet); // [a, b, c]

try {
    copiedSet.add("d");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

boolean equals (Object o)

将指定对象与此集合进行比较以确定其是否相等。 (机器翻译)

final var set = Set.of("a", "b", "c");
System.out.println(set); // [a, b, c]

System.out.println(set.equals(Set.of("a"))); // false
System.out.println(set.equals(Set.of("a", "b"))); // false
System.out.println(set.equals(Set.of("a", "b", "c"))); // true
System.out.println(set.equals(Set.of("c", "b", "a"))); // true
final var set = Set.of("a", "b", "c");
System.out.println(set); // [a, b, c]

final Set<String> hashSet = new HashSet<>(set);
System.out.println(hashSet); // [a, b, c]
System.out.println(set.equals(hashSet)); // true

final Set<String> treeSet = new TreeSet<>(set);
System.out.println(treeSet); // [a, b, c]
System.out.println(set.equals(treeSet)); // true

final var list = new ArrayList<>(set);
System.out.println(list); // [a, b, c]
System.out.println(set.equals(list)); // false

int hashCode ()

返回此集合的哈希码值。 (机器翻译)

final var set1 = Set.of("a", "b", "c");
System.out.println(set1.hashCode()); // 294

final var set2 = Set.of(1, 2, 3);
System.out.println(set2.hashCode()); // 6
final Set<String> set1 = new LinkedHashSet<>();
set1.add("a");
set1.add("b");
set1.add("c");

System.out.println(set1); // [a, b, c]
System.out.println(set1.hashCode()); // 294

final Set<String> set2 = new LinkedHashSet<>();
set2.add("c");
set2.add("b");
set2.add("a");

System.out.println(set2); // [c, b, a]
System.out.println(set2.hashCode()); // 294

boolean isEmpty ()

如果此集合不包含任何元素,则返回 true。 (机器翻译)

final Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");

System.out.println(set); // [a, b, c]
System.out.println(set.isEmpty()); // false

set.clear();
System.out.println(set); // []
System.out.println(set.isEmpty()); // true

Iterator<E> iterator ()

返回此集合中元素的迭代器。 (机器翻译)

final var set = Set.of("aaa", "bbb", "ccc");
System.out.println(set); // [aaa, ccc, bbb]

final var it = set.iterator();

System.out.println("-- forEachRemaining --");
it.forEachRemaining(System.out::println);

// Result
// ↓
//-- forEachRemaining --
//aaa
//ccc
//bbb

static <E> Set<E> of ()

返回包含零元素的不可修改集合。 (机器翻译)

final var set = Set.of();
System.out.println(set); // []
System.out.println(set.size()); // 0

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1)

返回包含一个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a");
System.out.println(set); // [a]
System.out.println(set.size()); // 1

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E... elements)

返回包含任意数量元素的不可修改集合。 (机器翻译)

final var set = Set.of(
        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
        "k", "l", "m", "n"
);
System.out.println(set); // [c, d, e, f, g, h, i, j, k, l, m, n, a, b]
System.out.println(set.size()); // 14

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2)

返回包含两个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b");
System.out.println(set); // [b, a]
System.out.println(set.size()); // 2

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3)

返回包含三个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c");
System.out.println(set); // [b, a, c]
System.out.println(set.size()); // 3

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3, E e4)

返回包含四个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c", "d");
System.out.println(set); // [b, a, d, c]
System.out.println(set.size()); // 4

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3, E e4, E e5)

返回包含五个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c", "d", "e");
System.out.println(set); // [e, d, c, b, a]
System.out.println(set.size()); // 5

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3, E e4, E e5, E e6)

返回包含六个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c", "d", "e", "f");
System.out.println(set); // [f, e, d, c, b, a]
System.out.println(set.size()); // 6

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3, E e4, E e5, E e6, E e7)

返回包含七个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c", "d", "e", "f", "g");
System.out.println(set); // [g, f, e, d, c, b, a]
System.out.println(set.size()); // 7

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)

返回包含八个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c", "d", "e", "f", "g", "h");
System.out.println(set); // [h, g, f, e, d, c, b, a]
System.out.println(set.size()); // 8

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)

返回包含九个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c", "d", "e", "f", "g", "h", "i");
System.out.println(set); // [a, i, h, g, f, e, d, c, b]
System.out.println(set.size()); // 9

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

static <E> Set<E> of (E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)

返回包含十个元素的不可修改集合。 (机器翻译)

final var set = Set.of("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");
System.out.println(set); // [j, i, h, g, f, e, d, c, b, a]
System.out.println(set.size()); // 10

try {
    set.add("z");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// Result
// ↓
//UnsupportedOperationException!

boolean remove (Object o)

如果存在,则从此集合中删除指定元素(可选操作)。 (机器翻译)

final var src = Set.of("a", "b", "c");

{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.remove("")); // false
    System.out.println(set); // [a, b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.remove("a")); // true
    System.out.println(set); // [b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.remove("b")); // true
    System.out.println(set); // [a, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.remove("X")); // false
    System.out.println(set); // [a, b, c]
}

boolean removeAll (Collection<?> c)

从此集合中删除指定集合中包含的所有元素(可选操作)。 (机器翻译)

final var src = Set.of("a", "b", "c");

{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.removeAll(Set.<String>of())); // false
    System.out.println(set); // [a, b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.removeAll(Set.of("a"))); // true
    System.out.println(set); // [b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.removeAll(Set.of("a", "b"))); // true
    System.out.println(set); // [c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.removeAll(Set.of("b", "a"))); // true
    System.out.println(set); // [c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.removeAll(Set.of("a", "b", "c"))); // true
    System.out.println(set); // []
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.removeAll(Set.of("X", "Y"))); // false
    System.out.println(set); // [a, b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.removeAll(Set.of("a", "X"))); // true
    System.out.println(set); // [b, c]
}

boolean retainAll (Collection<?> c)

仅保留此集合中包含在指定集合中的元素(可选操作)。 (机器翻译)

final var src = Set.of("a", "b", "c");

{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.<String>of())); // true
    System.out.println(set); // []
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.of("a"))); // true
    System.out.println(set); // [a]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.of("a", "b"))); // true
    System.out.println(set); // [a, b]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.of("b", "a"))); // true
    System.out.println(set); // [a, b]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.of("a", "b", "c"))); // false
    System.out.println(set); // [a, b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.of("a", "b", "c", "X", "Y"))); // false
    System.out.println(set); // [a, b, c]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.of("X", "a", "b", "Y"))); // true
    System.out.println(set); // [a, b]
}
{
    final Set<String> set = new HashSet<>(src);
    System.out.println(set); // [a, b, c]

    System.out.println(set.retainAll(Set.of("X", "Y"))); // true
    System.out.println(set); // []
}

int size ()

返回此集合中的元素数量(其基数)。 (机器翻译)

final var set1 = Set.of();
System.out.println(set1); // []
System.out.println(set1.size()); // 0

final var set2 = Set.of("a", "b", "c");
System.out.println(set2); // [a, b, c]
System.out.println(set2.size()); // 3

default Spliterator<E> spliterator ()

针对该集合中的元素创建一个 Spliterator。 (机器翻译)

final var set = Set.of("aaa", "bbb", "ccc");
System.out.println(set); // [bbb, ccc, aaa]

final var spliterator = set.spliterator();

System.out.println("-- forEachRemaining --");
spliterator.forEachRemaining(System.out::println);

// Result
// ↓
//-- forEachRemaining --
//bbb
//ccc
//aaa

Object[] toArray ()

返回包含此集合中所有元素的数组。 (机器翻译)

final var set = Set.of("a", "b", "c");
System.out.println(set); // [a, b, c]

final Object[] array = set.toArray();
System.out.println(Arrays.toString(array)); // [a, b, c]

<T> T[] toArray (T[] a)

返回包含此集合中所有元素的数组;返回数组的运行时类型是指定数组的类型。 (机器翻译)

final var set = Set.of("a", "b", "c");
System.out.println(set); // [a, b, c]

final String[] ret = set.toArray(new String[0]);
System.out.println(Arrays.toString(ret)); // [a, b, c]
final var set = Set.of("a", "b", "c");
System.out.println(set); // [a, b, c]

{
    final String[] array = new String[3];
    System.out.println(Arrays.toString(array)); // [null, null, null]

    final var ret = set.toArray(array);
    System.out.println(Arrays.toString(array)); // [a, b, c]
    System.out.println(Arrays.toString(ret)); // [a, b, c]
}
{
    final String[] array = new String[5];
    System.out.println(Arrays.toString(array)); // [null, null, null, null, null]

    final var ret = set.toArray(array);
    System.out.println(Arrays.toString(array)); // [a, b, c, null, null]
    System.out.println(Arrays.toString(ret)); // [a, b, c, null, null]
}
{
    final String[] array = new String[1];
    System.out.println(Arrays.toString(array)); // [null]

    final var ret = set.toArray(array);
    System.out.println(Arrays.toString(array)); // [null]
    System.out.println(Arrays.toString(ret)); // [a, b, c]
}

Methods declared in Collection

parallelStream, removeIf, stream, toArray

请参阅下面的链接。

Methods declared in Iterable

forEach

请参阅下面的链接。


相关文章

To top of page