【Java_集合框架Set】HashSet、LinkedHashSet、TreeSet使用区别

时间:2021-06-19 17:55:38

HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;

LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;  

TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。

示例代码::

 

 1 package com.test2;
2
3 import java.util.HashSet;
4 import java.util.Iterator;
5 import java.util.LinkedHashSet;
6 import java.util.List;
7 import java.util.Set;
8 import java.util.TreeSet;
9
10 public class set {
11
12 public static void linkedhashset() {
13 // 以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
14 System.out.println("这里是LinkedHashset:");
15 Set<String> set = new LinkedHashSet<String>();
16 set.add("aaa");
17 set.add("d");
18 set.add("z");
19 set.add("aaa");
20 set.add("bbb");
21 for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
22 String str = iter.next();
23 System.out.println(str);
24 }
25
26 }
27
28 public static void treeset() {
29 // 提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
30 System.out.println("这里是TreeSet:");
31 Set<String> set = new TreeSet<String>();
32 set.add("aaa");
33 set.add("d");
34 set.add("z");
35 set.add("aaa");
36 set.add("bbb");
37 for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
38 String str = iter.next();
39 System.out.println(str);
40 }
41
42 }
43
44 public static void hashset() {
45 // 哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放
46 System.out.println("这里是HashSet:");
47 Set<String> set = new HashSet<String>();
48 set.add("aaa");
49 set.add("d");
50 set.add("z");
51 set.add("aaa");
52 set.add("bbb");
53 for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
54 String str = iter.next();
55 System.out.println(str);
56 }
57
58 }
59
60 public static void main(String[] args) {
61 linkedhashset();
62 hashset();
63 treeset();
64
65 }
66
67 }

 

 

 

结果输出:

这里是LinkedHashset:
aaa
d
z
bbb
这里是HashSet:
aaa
bbb
d
z
这里是TreeSet:
aaa
bbb
d
z