diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/collection/set/SetWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/collection/set/SetWrapper.java new file mode 100644 index 000000000..d65c9225f --- /dev/null +++ b/hutool-core/src/main/java/org/dromara/hutool/core/collection/set/SetWrapper.java @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2024. looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * https://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.core.collection.set; + +import org.dromara.hutool.core.lang.wrapper.SimpleWrapper; + +import java.util.Collection; +import java.util.Iterator; +import java.util.Set; +import java.util.Spliterator; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.stream.Stream; + +/** + * Set包装类
+ * 提供列表包装,用于在执行列表方法前后自定义处理逻辑 + * + * @param 元素类型 + * @author Looly + * @since 6.0.0 + */ +public class SetWrapper extends SimpleWrapper> implements Set { + + /** + * 构造 + * + * @param raw 原始对象 + */ + public SetWrapper(final Set raw) { + super(raw); + } + + @Override + public int size() { + return raw.size(); + } + + @Override + public boolean isEmpty() { + return raw.isEmpty(); + } + + @Override + public boolean contains(final Object o) { + return raw.contains(o); + } + + @Override + public Iterator iterator() { + return raw.iterator(); + } + + @Override + public void forEach(final Consumer action) { + raw.forEach(action); + } + + @Override + public Object[] toArray() { + return new Object[0]; + } + + @Override + public T[] toArray(final T[] a) { + return raw.toArray(a); + } + + @Override + public boolean add(final E e) { + return raw.add(e); + } + + @Override + public boolean remove(final Object o) { + return raw.remove(o); + } + + @Override + public boolean containsAll(final Collection c) { + return raw.containsAll(c); + } + + @Override + public boolean addAll(final Collection c) { + return raw.addAll(c); + } + + @Override + public boolean retainAll(final Collection c) { + return raw.retainAll(c); + } + + @Override + public boolean removeAll(final Collection c) { + return raw.removeAll(c); + } + + @Override + public boolean removeIf(final Predicate filter) { + return raw.removeIf(filter); + } + + @Override + public void clear() { + raw.clear(); + } + + @Override + public Spliterator spliterator() { + return raw.spliterator(); + } + + @Override + public Stream stream() { + return raw.stream(); + } + + @Override + public Stream parallelStream() { + return raw.parallelStream(); + } +}