集合框架Set

    xiaoxiao2022-07-02  108

    集合框架Set

    集合框架ArrayList中的重复元素去重及其底层原理 Set集合 HashSet TreeSet

    集合框架ArrayList中的重复元素去重及其底层原理: Contains()方法会底层调用的是equals()的方法,我们要将原有的集合遍历,再将遍历后的元素存放到新的集合中,存放前用Contains()方法做一个判断,再重写equals()的方法。这样就可以达到去重复的目的了。

    在调用remove()方法时也会调用equals()方法

    Set集合

    Set集合存入的元素是无序的,元素不可以重复。但在jdk1.8版本中,Set集合里的元素会按一定的顺序排出,数字按从大到小,英文字符串按首字符排序,

    HashSet

    HashSet的数据结构是哈希表。HashSet在进行存储数据的时候会先调用hashCode方法,如果hashCode值相同,才会判断equals是否为true;如果hashCode值不同,那么不会调用equals方法。所以在我们向HashSet加入重复字符串时它会自动判重复,而加入一个对象如Person时我们要重写hashCode和equals方法才能进行判重复。 先按年龄,后按名称排序 比较器排序

    当元素自身不具备比较性时,或者具备的比较性不是所需要的,我们就可以用到比较器排序。 这时需要让集合自身具备比较在集合初始化时,就有了比较方式。

    TreeSet hs=new TreeSet(new PersonComp());

    数据结构二叉树

    又称红黑树,可以对set集合进行排序,底层数据结构是二叉树. 图解:

    最新回复(0)