1.LinkedHashSet介绍
List接口: 允许元素重复,记录先后添加顺序.
Set接口: 不允许元素重复,不记录先后添加顺序.需求: 不允许元素重复,但是需要保证先后添加的顺序.
LinkedHashSet:底层才有哈希表和链表算法.
哈希表:来保证唯一性,.此时就是HashSet,在哈希表中元素没有先后顺序.
链表: 来记录元素的先后添加顺序.
import java.util.LinkedHashSet;
import java.util.Set;
public class SetDemo3 {
public static void main(String[] args) {
Set<String> set = new LinkedHashSet<>();
set.add("A");
set.add("B");
set.add("C");
set.add("D");
set.add("D");
System.out.println(set);//会记录添加顺序,不允许重复[A, B, C, D]
}
}
LinkedHashSet类是线程不安全的类,在多线程环境下想要保证线程安全.
LinkedHashSet set = Collections.synchronizedSet(new LinkedHashSet(...));