Set接口和常用方法
基本介绍
- 无序(添加和取出的顺序不一样),没有索引
- 不允许重复元素,所以最多包含一个null
- JDK API 中Set接口的实现类有:
public static void main(String[] args) {
//1.以set接口的实现类HashSet来讲解Set 接口的方法
//2.set接口的实现类的对象(Set接口对象),不能存放重复的元素,可以添加一个null
//3.set接口对象存放数据是无序的--即添加的顺序和取出的顺序不一致
//4.注意:取出的顺序虽然不是添加的顺序,但是其是固定的,即放入和取出只会打乱一次,
// 并不是说同样的一组数据,取得第二次和第三次顺序不一样;
Set set = new HashSet();
set.add("bingo!!");
set.add("冲冲冲!!");
set.add("kerwin");
set.add("enjoy");
set.add(true);
set.add(null);
set.add(null);
System.out.println(set);
//输出 [null, bingo!!, 冲冲冲!!, enjoy, kerwin, true]
for (int i = 0; i < 5; i++) {
System.out.println(set);
}
//输出结果如下
/**
* [null, bingo!!, 冲冲冲!!, enjoy, kerwin, true]
* [null, bingo!!, 冲冲冲!!, enjoy, kerwin, true]
* [null, bingo!!, 冲冲冲!!, enjoy, kerwin, true]
* [null, bingo!!, 冲冲冲!!, enjoy, kerwin, true]
* [null, bingo!!, 冲冲冲!!, enjoy, kerwin, true]
* [null, bingo!!, 冲冲冲!!, enjoy, kerwin, true]
*/
}
常用方法
和List接口一样,Set接口也是Collection的子接口,因此,常用方法和Collecton接口一样
Set接口遍历方式(2种)
同Collection的遍历方式一样,因为Set接口是Collection接口的子接口
- 可以使用迭代器
- 增强for
- 不能使用索引的方式来获取
@SuppressWarnings({
"all"})
public class Journey {
public static void main(String[] args) {
Set set = new HashSet();
set.add("bingo!!");
set.add("冲冲冲!!");
set.add("kerwin");
set.add("enjoy");
set.add(true);
set.add(null);
set.add(null);
//遍历--使用迭代器
System.out.println("================迭代器遍历===============");
Iterator iterator = set.iterator();
//此时要联想到迭代器的结构
while (iterator.hasNext()) {
//判断还有没有下个元素
Object obj = iterator.next();
System.out.println(obj);
}
//输出结果如下
/**
* null
* bingo!!
* 冲冲冲!!
* enjoy
* kerwin
* true
*/
//遍历--增强for
System.out.println("=========增强for遍历===========");
for (Object o : set){
System.out.println("for->"+o);
}
//输出如下
/**
* for->null
* for->bingo!!
* for->冲冲冲!!
* for->enjoy
* for->kerwin
* for->true
*/
//set接口对象,不能通过索引来获取,所以无法用normal-for来循环获取
}
}
HashSet的全面说明
- HashSet实现了Set接口
- HashSet实际上是HashMap 源码如下:
public HashSet() {
map = new HashMap<>();
}
- HashSet可以存放null值,但是只能有一个null
- HashSet不保证元素是有序的,取决于Hash后,再确定索引的结果
- 不能有重复元素/对象;
import java.util.*;
@SuppressWarnings({
"all"})
public class Journey {
public static void main(String[] args) {
Set hashSet = new HashSet();
hashSet.add(true);
hashSet.

最低0.47元/天 解锁文章
16万+

被折叠的 条评论
为什么被折叠?



