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 }
LinkedHashSet -有序,不重合集合,但仍不可索引,结合for循环取元素,数据多可能效率低
原文:https://www.cnblogs.com/huxiaobai/p/11494308.html