Set集合是Collection集合的子接口,Set集合不允许包含相同的元素,如果尝试把两个相同的元素存入同一个Set集合中,则添加失败,Set集合判断两个对象是否相同,不是使用==运算符,而是根据equals()方法进行比较。
HashSet作为Set集合的主要实现类,线程不安全,可以存储null值。
LinkedHashSet作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序遍历。
TreeSet可根据添加对象的指定属性进行排序。
以HashSet举例:
无序性:不等于随机性,存储的数据在底层并不是按照数据的索引的顺序添加。根据hashCode()方法,获取该添加元素的哈希值,通过此哈希值来确定该元素在数组中的添加位置。
不可重复性:保证添加的元素按照equals()判断时,不能返回true,只能返回false,相同的元素只能存储一个。