public class Set1 {
static void fill(Set<String> s) {
s.addAll(Arrays.asList("f b d c e a g".split(" ")));
}
public static void test(Set s) {
System.out.println(s.getClass().getName().replaceAll("\\w+\\.", ""));
fill(s);
fill(s);
fill(s);
System.out.println(s);
s.addAll(s);
s.add("bne");
s.add("bne");
s.add("bne");
System.out.println(s);
System.out.println(s.contains("one"));
for (Iterator iterator = s.iterator(); iterator.hasNext();) {
String hashCode = (String) iterator.next();
System.out.print(hashCode + "->" + hashCode.hashCode() + " ,");
}
}
public static void main(String[] args) {
test(new HashSet<String>());
test(new TreeSet());
test(new LinkedHashSet());
}
}
此例子说明了三种Set的区别
结果显示为:
HashSet
[f, g, d, e, b, c, a]
[f, g, d, e, b, c, a, bne]
false
f->102 ,g->103 ,d->100 ,e->101 ,b->98 ,c->99 ,a->97 ,bne->97689 ,TreeSet
[a, b, c, d, e, f, g]
[a, b, bne, c, d, e, f, g]
false
a->97 ,b->98 ,bne->97689 ,c->99 ,d->100 ,e->101 ,f->102 ,g->103 ,LinkedHashSet
[f, b, d, c, e, a, g]
[f, b, d, c, e, a, g, bne]
false
f->102 ,b->98 ,d->100 ,c->99 ,e->101 ,a->97 ,g->103 ,bne->97689 ,
可以得出结论:
HashSet按Hash函数排序
LinkedHashSet按插入顺序排序
TreeSet按字母顺序排序
set不保存重复的元素(这大家都知道)
分享到:
相关推荐
本文主要探讨了三种基于Set接口的实现类:HashSet、LinkedHashSet和TreeSet,它们各自有不同的特性和使用场景。 首先,HashSet是最基础的Set实现,它不保证元素的特定顺序,也不保证在多次操作后保持元素的顺序不变...
比较遗憾的是,TreeSet 虽然实现起来也比较简单,但它有着和 HashSet 一样的问题,会自动排序 5:LinkedHashSet去重(有序) 从代码和执行结果可以看出,LinkedHashSet 是到目前为止,实现比较简单,且最终生成的新...
在Java编程语言中,集合框架是处理对象组的重要工具,其中`HashSet`和`TreeSet`是两种常见的接口实现类,分别提供了不同的功能和性能特性。本教程将深入探讨这两个集合类以及它们与比较器(Comparator)的关系。 ...
java8 源码 学习笔记(持续更新中) 所有文章均同步发布到微信公众号...LinkedHashSet TreeSet HashSet Concurrent源码系列 待完善 JVM(Java虚拟机) 类加载 垃圾回收算法 JavaConcurrent(Java并发系列) 【Java并发系列】
AbstractSet 抽象类SortedSet 接口HashSet LinkedHashSet TreeSet List 接口 AbstractList 和 AbstractSequentialList Vector Stack ArrayList LinkedList Queue接口Deque 接口 AbstractQueue 抽象类LinkedList ...
本文将深入探讨Java中四个主要的Set实现类:HashSet、LinkedHashSet、TreeSet以及EnumSet。 首先,Set集合的核心特性是不存储重复元素。在尝试通过`add()`方法添加相同元素时,如果集合中已经存在该元素,`add()`...
Set集合是JavaSE中的一种重要数据结构,主要包括HashSet、TreeSet和LinkedHashSet三个子类。下面我们将对Set集合的原理、特点、使用场景等进行详细的探索和分析。 HashSet HashSet是Set集合中的一种重要实现类,...
1. Set(集):无序、不可重复、唯一,实现类有HashSet、TreeSet、LinkedHashSet等。 2. List(列表):有序、可重复、多个null元素,实现类有ArrayList、LinkedList、Vector等。 3. Map(映射):键值对集合,键...
GoDS(Go数据结构) Go中各种数据结构和算法的实现。 数据结构 货柜 所有数据结构都通过以下方法实现容器接口: type Container interface { Empty () bool Size () int Clear () Values () [] interface {} ...
Set接口代表不允许有重复元素的集合,如HashSet、TreeSet和LinkedHashSet。List接口则表示有序的、允许重复元素的集合,如ArrayList、LinkedList和Vector。Map接口则不同于Collection,它是键值对存储的接口,常见的...
ava基础 基础知识 面向对象基础 Java基本数据类型 string和包装类 final关键字特性 Java类和包 抽象类和接口 ...Java集合详解7:HashSet,TreeSet与LinkedHashSet Java集合详解8:Java集合类细节精讲 JavaWeb
HashSet 和 TreeSet 有什么区别? HashMap 和 TreeMap 有什么区别? 什么是迭代器?如何使用它来遍历集合? 什么是 fail-fast 机制? 如何使用 Collections 类对集合进行排序? 什么是 Comparable 和 Comparator ...
Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)
Set接口的实现类主要有HashSet、TreeSet和LinkedHashSet,它们各自有不同的特性和使用场景。 1. **HashSet** HashSet是最基本的Set实现类,它的内部基于HashMap实现。这意味着它的元素存储是无序的,且通过哈希...
- 常见实现类有HashSet、TreeSet和LinkedHashSet等。 3. Queue(队列): - 以队列的方式存储元素,遵循先进先出(FIFO)的原则。 - 可以在队列的两端进行操作,即添加元素到队尾或移除队首元素。 - 常见实现类有...
实现类有HashSet、LinkedHashSet和TreeSet。 - **Queue**:用于处理排队操作,遵循特定的入队和出队规则。实现类有LinkedList(作为双端队列)、PriorityQueue和ArrayQueue。 2. **Map接口**: - **Map**:用于...
Set 接口的实现类主要有 HashSet、TreeSet、LinkedHashSet 等,分别基于 HashMap、红黑树和链表结构实现的。Map 接口的实现类主要有 HashMap、TreeMap、Hashtable 等,分别基于数组+链表、红黑树和数组+链表结构实现...
- Set:无序容器,不允许元素重复,如HashSet、LinkedHashSet和TreeSet。 - Map:键值对容器,键唯一,值可重复,如HashMap、TreeMap、HashTable、LinkedHashMap和ConcurrentHashMap。 7. **底层数据结构**: - ...
Set接口不允许重复元素,HashSet、LinkedHashSet和TreeSet是其主要实现。HashSet基于哈希表,提供快速的插入和查找,但不保证元素顺序。LinkedHashSet保持了元素插入的顺序,而TreeSet则使用红黑树,按自然排序或...