Set集合
首先我们来了解Set集合,Set继承了Collection接口,Set中使用到的方法都是从Collection中继承的,它自己并没有声明其他的方法。
Set接口中所包含的方法如下,实现Set的类也实现了这些接口。
- int size(); //获取集合中元素的个数;
- boolean isEmpty(); //判断集合是否为空;
- boolean contains(Object element) //判断是否包含某元素;
- boolean add(E element) //向集合中添加某元素;
- boolean remove(Object element) //从集合中移除某元素;
- Iterator<E> iterator(); //返回当前集合元素的反复器 iterator;
- void clear(); //清空当前集合;
JDK中提供了实现Set接口的3个实用的类:HashSet 类、TreeSet 类和 LinkedHashSet 类。
接下来我们主要讲讲HashSet类。
HashSet类是采用Hash表实现了Set接口。一个HashSet对象中元素存储在一个Hash表中,其中的元素有个特性:
没有固定的顺序。
另外,它还具有唯一性,这是通过
重写hashCode()和equals()方法来实现的。
HashSet的常用方法请参考上文中讲到的方法。
HashSet常用方法示例
1.创建存放字符串的HashSet集合
Set<String> hashset = new HashSet<>();
2.像集合中添加元素
hashset.add("123");
hashset.add("456");
hashset.add("789");
3.判断集合是否为空
boolean empty = hashset.isEmpty();
System.out.println(empty);
4.判断集合是否包含123
boolean contains = hashset.contains("123");
System.out.println(contains);
5.移除123并打印输出
hashset.remove("123");
System.out.println(hashset);
6.使用迭代器来输出HashSet
Iterator<String> iterator = hashset.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
输出结果:
- false
- true
- [456,789]
- 456
- 789
HashSet中的无序性
public static void main(String[] args) {
// 创建存储字符串的HashSet集合
Set<String> objects = new HashSet<>();
// 往集合中添加元素
objects.add("123");
objects.add("aa");
objects.add("a");
// 获取迭代器,遍历集合所有元素
Iterator<String> iterator = objects.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
输出结果:
1.aa
2.a
3.123
版权声明:本文为Xixicjj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。