Set:set不存重复元素,如果是使用set存储java预定义的Integer,String等类型会很简单,如果是存储自定义类型的数据类型,就必须要重新定义equals()方法以确保set中保存的对象得人唯一性,set接口是不保证元素的次序的,所以当你的set使用场景不同时,也要根据实际情况选着不同的set实现;
HashSet:为快速查找而设计,存入HashSet的元素必须定义hashCode()(默认选择)
TreeSet:存储在TreeSet里面的数据是有序的,底层是树结构,元素必须实现Comparable接口;
LinkedHashSet:具有HashSet的查询速度,内部顺序是用链表维护的(插入的次序),元素必须定义hashCode();