Set接口继承了Collection接口---有Collection当中的所有方法,没有新增的方法
没有顺序、不可重复--->核心要点
Set当中没有索引,只能遍历查找数据
不允许加入重复的元素,新元素如果和Set中某个元素通过equals方法对比为true,则不可加入
Set中只能放入一个null元素,不能多个
HashSet和TreeSet使用较多
特点:
HashSet采用哈希算法实现,底层是用HashMap实现
查询效率和增删效率都比较高
public class HashSet<E> implements Set<E>,Cloneable,java.io.Serializable{ private transient HashMap<E,Object>map; private static final Object PRESENT = new Obejct(); public HashSet(){ map = new HashMap<E,Object>(); } public boolean add(E e){ return map.put(e,PRESENT) == null; } }
实现排序的关键在于他的add方法当中返回值是刚加入的e元素,然后Value返回的源码里面定义的Object对象
实际上add添加的都是key,HashSet是一个Map