show me code! 区别代码里说
public static void testHashSet() {
HashSet<String> set = new HashSet<>();
set.add("张飞");
set.add("张辽");
set.add("张让");
set.add("张让");
set.add("1");
set.add("3");
set.add("2");
System.out.println("--HashSet--");
for (String string : set) {
System.out.println(string);
}/**(张辽,1,张飞,2,3,张让)特点:无序,不重复, 数据结构:散列表hashMap 父类 AbstractSet*/
}
public static void testTreeSet() {
TreeSet<String> set = new TreeSet<>();
set.add("张飞");
set.add("张辽");
set.add("张让");
set.add("张让");
set.add("1");
set.add("3");
set.add("2");
Iterator iterator =set.iterator();
System.out.println("--TreeSet--");
while(iterator.hasNext()) {
System.out.println(iterator.next());;
}/**(张飞,张辽,张让,1,3,2)特点:按插入的顺序,不重复,数据结构:双向循环链表,实现使用linkedhashMap父类HashSet*/
}
public static void testlinkHashSet() {
LinkedHashSet<String> set = new LinkedHashSet<>();
set.add("张飞");
set.add("张辽");
set.add("张让");
set.add("张让");
set.add("1");
set.add("3");
set.add("2");
System.out.println("--linkHashSet--");
for (String string : set) {
System.out.println(string);
}/**(1,2,3,张让,张辽,张飞)特点:自动排序,不重复 ,数据结构:红黑树 基于TreeMap实现 父类AbstractSet*/
}
public static void main(String[] args) {
//统一特点 非线程安全且不重复
MySet.testHashSet();
MySet.testlinkHashSet();
MySet.testTreeSet();
}