set
特点: 无序无重复
无序:添加的顺序,获取的顺序不一致(不是集合本身是否有序,Tree自然有序)
无重复:添加的元素不能医治(如果出现重复元素,只存入第一个,后面重复的不再存入)
HashSet(HashMap --> 数据存储结构 散列表)
TreeSet(TreeMap--->数据存储结构:(红黑)二叉树)
set集合家族的基本使用:
增删改查:add(E e) remove(E e) 没有修改 iterator<>迭代器 也可以用增强for循环
hasNext(); 是否有下一个元素 next();获取元素
set集合的无重复特性:
hashSet 无重复原则有两个方法同时起作用:equals hashCode 默认都是继承Object ,都是比较地址
默认比较的是两个对象的地址,若第二个对象的地址与之前的一致,则不再存入
如果想要改变其比较的规则, 可以重写上述两个方法
TreeSet 无重复原则有一个方法起作用
compareTo
上述这个方法不是每一个对象都有的
如果想要将某个对象存入TreeSet集合中 需要让对象所属的累实现Comparable接口,
实现接口后将compareTo方法重写 返回值是int类型 负数靠前排 正数靠后排