Set接口

2020-08-05  本文已影响0人  还是那个没头脑

介绍&常用方法

java.util.Set接口 extends Collection接口

Set接口的特点:

        1.不能存储重复的元素
        2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历

HashSet

java.util.HashSet集合 implements Set接口

HashSet接口特点:

        1.不允许存储重复的元素
        2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
        3.是一个无序的集合,存储元素和取出元素的顺序有可能不一致
        4.底层是一个哈希表结构(查询的速度非常快)

哈希值

哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到地址,不是数据实际存储的物理地址)

在Object类有一个方法,可以获取对象的哈希值。

int hashCode方法的源码:
        public native int hashCode();
        native:代表该方法调用的是本地操作系统的方法

HashSet集合存储数据的结构(哈希表)

HashSet集合保证元素唯一性分析

HashSet集合添加一个元素的过程:


HashSet集合存储不重复元素:
必须重写hashCode()和equals()方法

LinkedHashSet

java.util.LinkedHashSet集合 extends HashSet集合

LinkedHashSet集合特点:

底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的存储顺序),保证元素有序

TreeSet

TreeSet集合特点:

自然排序Comparable的使用

结论:

比较器排序Comparator的使用

结论:

上一篇下一篇

猜你喜欢

热点阅读