/*
Set接口:
Set 接口中的元素无序,并且都会以某种规则保证存入的元素不会出现重复
Set 接口主要有两个实现类,分别是HashSet 和 TreeSet。其中 HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有
良好的存取和查找性能. TreeSet 则是根据二叉树的方式来存储元素.它可以实现对集合中的元素进行排序。接下来,将对Set 集合的这两个
类进行详细讲解
HashSet集合:
HashSet 是 Set 接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。
当HashSet 集合添加一个元素时,首先会调用该元素的hashCode() 方法来确定元素的存储位置.然后再调用元素的
equals() 方法来确保该位置没有重复元素
个人认为和 C++ 里的 unordered_set 差不多
TreeSet集合:
个人认为和C++ 里的set 差不多
TreeSet 和 HashSet 的差别
1、TreeSet是二叉树实现的(内部基于TreeMap,数据结构和TreeMap一致),Treeset中的数据是自动排好序的,不允许放入null值。
2、HashSet是哈希表 实现的(内部基于HashMap,数据结构和HashMap一致),HashSet中的数据是无序的,可以放入null,但只能放入一个null。
3、HashSet要求放入的对象必须实 现HashCode()方法,放入的对象,是以hashcode码作为标识的,而具有相同内容的对象,hashcode一 样,所以放入的内容不能重复。但是同一个类的对象可以放入不同的实例。
4、TreeSet为基本操作(add、remove和contains)的时间复杂度是log(n)。另外,TreeSet是非同步的。它的iterator方法返回的迭代器是fail-fast的。
*/
import java.util.*;
public class Main{
public static void main(String[] args){
}
}