1 package cn.learn.collection.Set;
2
3 import java.util.HashSet;
4 import java.util.Iterator;
5 import java.util.LinkedHashSet;
6
7 /*
8 java.LinkedHashSet extends HashSet集合
9 特点:底层是一个哈希表(数组+链表/红黑树)+链表,多的一条链表记录元素顺序
10 */
11 public class LinkedHashSet_HashSet {
12 public static void main(String[] args) {
13 HashSet<String> set=new HashSet<>();
14 set.add("dsa");
15 set.add("a");
16 set.add("b");
17 System.out.println(set); //[a, b, dsa]无序,且不允许重复
18
19 LinkedHashSet<String> linked=new LinkedHashSet<>();
20 linked.add("ds");
21 linked.add("a");
22 linked.add("b");
23 System.out.println(linked); //[ds,a,b]有序序,且不允许重复
24 //虽然有序,但没有get方法,但无法使用索引值,还是需要用迭代器,可用for来获取指定元素
25 Iterator iter = linked.iterator();
26 //取第二个元素
27 for (int i = 2; i > 0 ; i--) {
28 if(iter.hasNext()){
29 if (i == 1) {
30 System.out.println(iter.next()); //a
31 }
32 iter.next();
33 }
34 }
35 }
36 }