集合(15):set接口的子类----LinkedHashSet类
集合(15):set接口的子类----LinkedHashSet类
通过API观察LinkedHashSet:
public class LinkedHashSetextends 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不仅去重了,而且输出的顺序和添加的顺序一致

浙公网安备 33010602011771号