HashSet
1.1 特性
- 内部是使用hashMap的,存储值再hashMap的key,value是一个静态的object
- 非线程安全的
-
1.2 属性
//内部使用的map
private transient HashMap<E,Object> map;
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
1.3 重要方法
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
TreeSet
2.1 特性
内部是排序的,使用红黑树,默认从小到大
- 内部使用的是NavigableMap
-
2.2 属性
```java /**
The backing map. */ private transient NavigableMap
m; // Dummy value to associate with an Object in the backing Map private static final Object PRESENT = new Object();
<a name="SSI5Z"></a>
## 2.3 重要方法
```java
public boolean add(E e) {
return m.put(e, PRESENT)==null;
}