# Set

Set 数据类型, 不允许有重复元素

Java 中有两种常见的Set，一种是HashSet, 无序。另一种是TreeSet有序

关于HashSet和TreeSet的底层原理和实现,可以访问我的github代码仓库,里面有详细的 图文解释 和 配套代码

本节完整代码可以访问 我的github仓库

## HashSet和TreeSet的创建

```java
Set<String> set1 = new HashSet<>();
Set<String> set2 = new TreeSet<>();
```

## Set的增，删，查操作

set里面增加，修改，查询元素, 利用add(), remove(), contains() 方法

```java
set1.add("blue");
set1.add("red");
set1.add("black");
set1.add("yellow");
set1.add("white");

set1.remove("white");

if (set1.contains("blue")){
    System.out.println("HashSet 含有blue");
}
```

## Set 的遍历

使用迭代器遍历 (嫌语法麻烦的可以不用这种方法hhh)

```java
// 用迭代器遍历元素
System.out.println("HashSet中元素为:");
Iterator it1 = set1.iterator();
while (it1.hasNext()) {
    System.out.println(it1.next());
}
```

使用增强型for循环遍历

```java
//也可以用增强型for循环遍历
System.out.println("HashSet中元素为:");
for (String s: set1) {
    System.out.println(s);
}
```
