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

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

时间: 2024-10-10 14:08:46

【Java_集合框架Set】HashSet、LinkedHashSet、TreeSet使用区别的相关文章

hashSet linkedHashSet treeSet 一点区别

上代码先: Set<String> hashSet=new HashSet<String>(); hashSet.add("thireBottom"); hashSet.add("thirdTop"); System.out.println(hashSet); Set<String> linkedSet=new LinkedHashSet<String>(); linkedSet.add("thireBott

集合框架之 HashSet

HashSet 是一个没有重复元素的集合. 它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素.HashSet是非同步的.如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步.这通常是通过对自然封装该 set 的对象执行同步操作来完成的.如果不存在这样的对象,则应该使用 Collections.synchronizedSet 方法来"包装" set.最好在创建时完成这一操作,以防止对该 set 进行意外

安卓 ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用

java的集合就那么几种 总体为:List,Set,Map (都是接口由其子类去实现具体的方法) ArrayList,LinkedList,Vector都属于List List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)  |-- ArrayList:底层的数据结构是数组结构,特点是:查询很快,增 删 稍微慢点,线程不同步 |-- LinkedList:底层使用的是链表数据结构,特点是:增 删很快,查询慢. |--Vector:底层是数组数据结构,线程同步,被ArrayList

hashset和treeset的区别

hashset 和 treeset的区别 hashset 和 treeset的区别 1.TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不允许放入null值. 2.HashSet 是哈希表实现的,HashSet中的数据是无序的,可以放入null,但只能放入一个null,两者中的值都不能重复,就如数据库中唯一约束. 3.HashSet要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode码作为标识的,而具有相同内容的 String对象,hashcod

java_集合框架

一.集合框架图 二.Collection接口 Collection中可以存储的元素间无序,可以重复的元素. Collection接口的子接口List和Set,Map不是Collection的子接口. 三.List接口 List接口中的元素的特点: List中的元素有序,可以重复. 两个常用的实现类ArrayList和LinkedList 1,ArrayList  类似数组形式存储,访问数度快,增删慢,线程不安全.  Vector是ArrayList的多线程的一个替代品. ArrayList遍历方

linkedhashSet和hashSet和TreeSet的区别(转)

Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象. HashSetHashSet有以下特点? 不能保证元素的排列顺序,顺序有可能发生变化? 不是同步的? 集合元素可以是null,但只能放入一个null当向HashSet结合中存入一个元素时,HashSet会调用该对象的hashCode()方

集合类源码(八)Collection之Set(HashSet, LinkedHashSet, TreeSet)

HashSet 先看一下成员变量 // 由此可见内部存储是一个HashMap private transient HashMap<E,Object> map; private static final Object PRESENT = new Object(); public HashSet() { map = new HashMap<>(); } add方法 public boolean add(E e) { return map.put(e, PRESENT)==null; }

集合(七) Set——HashSet和TreeSet

四.Set Set和List一样,也是继承Collection的接口,但Set是不包含重复元素的集合.由于先啃下Map,Set的难度将会大幅减小.因为Set基本上都是以Map为基础实现的,例如两个主要集合HashSet以HashMap为基础实现,是无序的:而TreeSet以TreeMap为基础实现,是有序的. 1.HashSet 原文地址:https://www.cnblogs.com/lbrs/p/11192178.html

[javaSE] 集合框架(HashSet)

Set:元素是无序,不可重复的 HaseSet:底层数据结构是哈希表 定义一个类Demo 获取Demo对象,system.out.println(demo),打印demo对象,[email protected] Demo对象在内存中是按照哈希值存储在哈希表中,取出也是按照哈希值,所以是无序的 import java.util.HashSet; class Demo{ } public class HashSetDemo { /** * @param args */ public static v