集合(15):set接口的子类----LinkedHashSet类

集合(15):set接口的子类----LinkedHashSet类

通过API观察LinkedHashSet:
public class LinkedHashSet extends HashSet{}

LinkedHashSet类继承HashSet类

前面说到public class HashSet implements Set{}
HashSet实现set接口,HashSet是set接口的一个子类,
LinkedHashSet也是set接口的一个子类
同时HashSet是LinkedHashSet的父类

1、LinkedHashSet类的概述

(1)底层数据结构是哈希表和双向链表(通过哈希表和链表实现set接口)
(2)哈希表保证了元素唯一
(3)链表保证了元素的有序(存储和取出顺序一致)

2、LinkedHashSet类的使用案例

public class LinkedHashSetDemo {
    public static void main(String[] args) {
        //LinkedHashSet没有特有的成员方法,完全继承了父类HashSet的方法
        //创建LinkedHashSet类的对象
        LinkedHashSet<String> arr = new LinkedHashSet<>();
        
        //添加元素到集合
        arr.add("hello");
        arr.add("world");
        arr.add("java");
        arr.add("bigdata");
        arr.add("hadoop");
        arr.add("hello");
        arr.add("hello");
        arr.add("java");
        arr.add("spark");
        arr.add("flink");
        arr.add("world");
        arr.add("hadoop");

        for (String s : arr){
            System.out.println(s);
        }
    }
}
            执行结果如下:
                        hello
                        world
                        java
                        bigdata
                        hadoop
                        spark
                        flink

                        Process finished with exit code 0
    //通过结果发现,LinkedHashSet不仅去重了,而且输出的顺序和添加的顺序一致
posted @ 2021-12-30 00:52  阿伟宝座  阅读(68)  评论(0)    收藏  举报