欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:Java
目录
- 👉🏻set
- 1. 接口与实现
- 2. 特性
- 3. 常用方法
- 4. 示例代码
- 5. 遍历
- 6. 线程安全
- 👉🏻set更多方法
- 1. 其他常用方法
- 1.1. `clear()`
- 1.2. `equals(Object o)`
- 1.3. `hashCode()`
- 1.4. `isEmpty()`
- 1.5. `iterator()`
- 1.6. `toArray()`
- 1.7. `toArray(T[] a)`
- 2. 额外的方法
- 2.1. `removeAll(Collection<?> c)`
- 2.2. `retainAll(Collection<?> c)`
- 2.3. `containsAll(Collection<?> c)`
- 2.4. `size()`
👉🏻set
1. 接口与实现
Java 的 Set
接口是 Java Collections Framework 的一部分,用于存储不重复的元素集合。常见的实现类有:
HashSet
:基于哈希表实现,提供快速的查找和插入,元素无序。LinkedHashSet
:维护插入顺序,性能与HashSet
相似。TreeSet
:基于红黑树实现,元素按自然顺序排序或指定的比较器排序。
2. 特性
- 唯一性:不允许重复元素。
- 无序性:
HashSet
和LinkedHashSet
不保持元素的顺序,而TreeSet
会保持排序。 - 动态大小:可以根据需要动态扩展。
3. 常用方法
add(E e)
:添加元素,如果已存在则返回 false。remove(Object o)
:移除指定元素。contains(Object o)
:检查集合中是否包含指定元素。size()
:返回集合中元素的数量。isEmpty()
:判断集合是否为空。
4. 示例代码
以下是使用 HashSet
的简单示例:
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> colors = new HashSet<>();
// 添加元素
colors.add("Red");
colors.add("Green");
colors.add("Blue");
colors.add("Red"); // 重复元素不会被添加
// 打印集合
System.out.println(colors); // 输出: [Red, Green, Blue] (顺序不定)
// 检查元素
System.out.println(colors.contains("Green")); // 输出: true
// 删除元素
colors.remove("Blue");
// 打印集合大小
System.out.println(colors.size()); // 输出: 2
}
}
5. 遍历
可以使用增强的 for 循环或迭代器遍历 Set
:
for (String color : colors) {
System.out.println(color);
}
6. 线程安全
Set
的实现类通常不是线程安全的,但可以使用 Collections.synchronizedSet()
来创建线程安全的集合。
如果你想了解更具体的实现或用法,欢迎告诉我!
👉🏻set更多方法
当然,除了常用的基本方法,Set
接口还有一些其他的方法。以下是 Set
接口中定义的主要方法:
1. 其他常用方法
1.1. clear()
- 描述:移除集合中的所有元素。
- 返回:无返回值。
1.2. equals(Object o)
- 描述:比较指定对象与集合的相等性。
- 返回:如果对象与集合相等,则返回 true;否则返回 false。
1.3. hashCode()
- 描述:返回集合的哈希码值,适用于集合的哈希表存储。
- 返回:集合的哈希码值。
1.4. isEmpty()
- 描述:检查集合是否为空。
- 返回:如果集合没有元素则返回 true,否则返回 false。
1.5. iterator()
- 描述:返回一个迭代器,用于遍历集合中的元素。
- 返回:
Iterator<E>
类型的迭代器。
1.6. toArray()
- 描述:将集合中的元素转换为一个数组。
- 返回:包含集合中所有元素的数组。
1.7. toArray(T[] a)
- 描述:将集合中的元素转换为指定类型的数组。
- 返回:包含集合中所有元素的数组,如果提供的数组足够大,则使用该数组;否则,创建一个新数组。
2. 额外的方法
2.1. removeAll(Collection<?> c)
- 描述:从集合中移除所有包含在指定集合中的元素。
- 返回:如果集合发生变化,则返回 true;否则返回 false。
2.2. retainAll(Collection<?> c)
- 描述:仅保留集合中包含在指定集合中的元素。
- 返回:如果集合发生变化,则返回 true;否则返回 false。
2.3. containsAll(Collection<?> c)
- 描述:检查集合是否包含指定集合中的所有元素。
- 返回:如果集合包含所有指定元素,则返回 true;否则返回 false。
2.4. size()
- 描述:返回集合中元素的数量。
- 返回:集合中元素的数量。
如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长