集合TreeSet的使用】的更多相关文章

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- TreeSet类 TreeSet是SortedSet接口的实现类,正如SortedSet名字所暗示的,TreeSet可以确保集合 元素处于排序状态.与HashSet集合相比,TreeSet还提供了如下几个额外的方法. 1)Comparator comparator(): 2)Object first(): 3)Object last(): 4)Object lower(Object o): 5…
目录 1.构造函数 2.增 3.删 4.比较器 总结 谈到TreeSet的特点,估计大家脑海里想到的都是:有序,不可重复,红黑树,基于Treemap实现,自定义排序等特点.这篇博客帮助大家从源码梳理下TreeSet的知识点. 1.构造函数 TreeSet提供了四种构造器 TreeSet() TreeSet(Collection< ? extends E> c) TreeSet(Comparator< ? super E> comparator) TreeSet(SortedSet&…
集合中的TreeSet是集合体系结构中的底层实现,是Collection的孙子,Set的儿子.TreeSet除拥有父接口的特点外,还有其自身的特点.下面就看看TreeSet的排序是怎么实现的.从它的构造方法看,提供了无参和带参两种. 常用到的两个构造: 无参构造 public TreeSet() 构造一个新的空set,该set根据其元素的自然顺序进行排序.插入该set的所有元素都必须实现Comparable接口. 带参构造 public TreeSet(Comparator<? super E>…
转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311268 第1部分 TreeSet介绍 TreeSet简介 TreeSet 是一个有序的集合,它的作用是提供有序的Set集合.它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口.TreeSet 继承于AbstractSet,所以它是一个Set集合,具有S…
==知识点== 1.泛型 2.Set集合 3.TreeSet 4.数据结构-二叉树 5.数据结构-平衡二叉树 ==用到的单词== 1.element[ˈelɪmənt] 要素 元素(软) 2.key[kiː] 计算机或打字机的) 键; 3.type[taɪp] 类型; 4.value[ˈvæljuː] 值 5.genericity 泛型 6.comparable[ˈkɒmpərəbl] 可比较的; 7.compare[kəmˈpeə(r)] 比较 8.comparator[kəmˈpɜrətər…
TreeSet集合 TreeSet集合是一个依靠TreeMap实现的有序集合,内部存储元素是自动按照自然排序进行排列,所以如果想要保留存储时的顺序,那么就不建议使用TreeSet. TreeSet继承了Set的特性,也就是不允许有重复元素,他会通过compareTo方法对所有元素进行比较,此方法认为相等的元素就是相同元素.并且TreeSet存储元素的方式是根据二叉树的形式,这样在一定程度上提高了效率,下面我们用一张简单的图展示一下TreeSet的存储原理: 这就是TreeSet存储元素的基本原理…
TreeSet是实现Set接口的实现类.所以它存储的值是唯一的,同时也可以对存储的值进行排序,排序用的是二叉树原理.所以要理解这个类,必须先简单理解一下什么是二叉树. 二叉树原理简析 假如有这么一个集合TreeSet<Integer>是[5,11,6,5,23,14] 用二叉树是怎么排序的呢? 二叉树遍历方法比较多,有兴趣自己百度看下吧.这里只需要知道元素是怎么插入到二叉树即可.小的存储在左边(负数),大的存储在右边(正数),相等不存储. TreeSet的基本使用 @Test public v…
单例集合体系: ---------| collection  单例集合的根接口--------------| List  如果实现了list接口的集合类,具备的特点:有序,可重复       注:集合中的有序不是指自然顺序,而是指添加进去的顺序与出来的顺序是一致的------------------| ArrayList  ArrayList底层维护了一个object数组的实现的.(线程不安全),特点:查询速度快,增删速度慢.(有序,可重复)------------------| LinkedL…
TreeSet是实现Set接口的实现类.所以它存储的值是唯一的,同时也可以对存储的值进行排序,排序用的是二叉树原理.所以要理解这个类,必须先简单理解一下什么是二叉树. 二叉树原理简述 假如有这么一个集合TreeSet<Integer>是[5,11,6,5,23,14] 用二叉树是怎么排序的呢? 二叉树遍历方法比较多,有兴趣自己百度看下吧.这里只需要知道元素是怎么插入到二叉树即可.小的存储在左边(负数),大的存储在右边(正数),相等不存储. TreeSet的基本使用 public static…
简述 TreeSet是基于TreeMap作为存储的可排序.可去重的有序集合 继承于AbstractSet,AbstractSet实现了equals和hashcode方法 实现了NavigableSet接口,意味着它支持一系列的导航方法,比如查找与指定目标最匹配项 实现了Cloneable接口,意味着它能被复制 实现了java.io.Serializable接口,意味着它支持序列化 TreeSet源码分析 public class TreeSet<E> extends AbstractSet&l…
Java 中的 Set 是非常常用的数据类型.Set 是无序的 Collection,Java Set 有三个常用的实现类,分别是:HashSet.LinkedHashSet.TreeSet 本文基于 JDK8 分析 HashSet HashSet 继承自 AbstractSet,实现了 Set 接口.底层基于 HashMap 实现,是一个不允许有重复元素的无序集合.允许 null 元素,非线程安全.HashSet 还实现了 Cloneable.Serializable 接口,所以 HashSe…
一.TreeSet 1.1.TreeSet Set:hashSet:数据结构是哈希表.线程是非同步的.        保证元素唯一性的原理:判断元素的HashCode值是否相同.         如果相同,还会判断元素的equals方法是否为true;       TreeSet: 可以去Set集合中的元素时行 排序. 使用二叉树的数据结构.      保证元素唯一性的依据:compareTo()方法return 0 使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Compar…
java中treemap和treeset实现(红黑树)   TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点. TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>,…
Collection集合,用来保存一组数据的数据结构. Collection是一个接口,定义了所有集合都应该包含的特征和行为 Collection派生出了两类集合 List和Set List接口:List集合的特征是元素是可重复且有序 Set接口:Set集合的特征是元素是不可重复且无序 public class TestSet { public static void main(String[] args) { List l = new ArrayList(); Set s = new Hash…
java库中的具体集合: 集合类型 描述 ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 ArrarDeque 一种用循环数组实现的双端队列 HashSet 一种没有重复元素的无序集合 TreeSet 一种有序集 EnumSet 一种包含枚举类型值的集 LinkedHashSet 一种可以记住元素插入次序的集 PriorityQueue 一种允许高效删除最小元素的集合 HashMap 一种存储键/值关联的数据结构…
虽然TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类,但TreeSet底层是通过 TreeMap来实现的,因此二者的实现方式完全一样.而 TreeMap 的实现就是红黑树算法. 一.TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet<E> extends AbstractSet<E> implem…
1. 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台: 分析: A: 定义学生类    B: 创建一个TreeSet集合       C: 总分从高到底如何实现呢?        D: 键盘录入5个学生信息       E: 遍历TreeSet集合 2. 代码示例: (1)Student.java: package cn.itcast_08; public class Student { // 姓名 private String name; // 语文成绩…
TreeSet(一) 一.TreeSet定义:      与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的.            1)TreeSet类概述         使用元素的自然顺序对元素进行排序         或者根据创建 set 时提供的 Comparator 进行排序         具体取决于使用的构造方法.       2)TreeSet是如何保证元素的排序和唯一性的         底层数据结构是红黑树(红黑树是一种自平衡的二叉树…
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hljs-comment, .hljs-template_comment, .diff .hljs-header, .hljs-javadoc { color: #998; font-style: italic; } .hljs-keyword, .css .rule .hljs-keyword, .h…
一.集合(定义字段的时候统一使用包装类) 1.集合大类分为List.Set.Map三种,其中,List集合是有序可重复的,并且可以使用普通for循环.增强for循环.正向迭代器.双向迭代器:Set集合是无序不可重复的,不可以使用普通for循环和双向迭代器,只能使用增强for循环和正向迭代器:Map集合也是无序不可重复的,只能存储键值对(也就是我们太容易对象),Map集合本身不能使用任意的循环方式. 二.Set集合 1.HashSet集合(HashSet集合里面传入了匿名对象的话,那么它的删除也是…
集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                         数组固定                         集合可变                 B:内容区别                         数组可以是基本类型,也可以是引用类型                         集合只能是引用类型         …
第13章 集合 本章内容: * 集合接口 * 具体的集合 * 集合框架 * 算法 * 遗留的集合 13.1 集合接口 Enumeration接口提供了一种用于访问任意容器中各个元素的抽象机制. 13.1.1 将集合的接口与实现分离 Java集合类库将接口(interface)与实现(implementation)分离. 队列接口指出可以在队列的尾部添加元素,在队列的头部删除元素,并且可以查找队列中元素的个数.当需要收集对象,并按照“先进先出”的规则检索对象时就应该使用队列. 队列通常有两种实现方…
集合类型 描述 ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效的插入和删除操作的有序序列 ArrayDeque 一种用循环数组实现的双端队列 HashSet 一种没有重复元素的无序集合 TreeSet 一种有序集 EnumSet 一种包含枚举类型值的集 LinkedHashSet 一种可以记住元素插入次序的集合 PriorityQueue 一种允许高效删除最小元素的集合 HashMap 一种存储键/值关联的数据结构 TreeMap 一种键值…
ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 ArrayDeque  一种用循环数组实现的双端队列 HashSet 一种没有重复元素的无序集合 TreeSet 一种有序集 LinkHashSet 一种可以记住元素插入次序的集合 PriorityQueue 一种可以高效删除最小元素的集合 HashMap 一种存储key:value关联的映射 TreeMap 一种key有序的映射 LinkedHashMap 一种可以…
Comparable和Comparator  Comparable 简介 Comparable 是排序接口.若一个类实现了Comparable接口,就意味着"该类支持排序".  即然实现Comparable接口的类支持排序,假设现在存在"实现Comparable接口的类的对象的List列表(或数组)",则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序.此外,"实现Comparable接口的类的对象&…
1:五种数据结构: 数组:长度固定,有序,查找方便   链表:添加删除方便   栈:先进后出    队列:先进先出   树结构:完成排序动作 2:泛型(了解) (1)是一种把明确数据类型的工作推迟到创建对象或者调用方法的时候采取明确的特殊的类型,将运行时的异常转到编译时的异常. (2)格式: <数据类型> 注 默认情况下,泛型是Object类型. (3)好处:(理解) A:优化了程序的设计. B:把运行期的问题提前到了编译期. D:避免了强制类型转换. (4)泛型体现: A:泛型类 :把泛型定…
Set(集合)接口 简介 同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了.     元素是有序的,元素值唯一,不允许重复. HashSet集合 HashSet是Set接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的. 当向HashSet集合中添加一个对象时,首先会调用该对象的hashCode()方法来确定元素的存储位置,然后再调用对象的equals()方法…
早在Java 2中之前,Java就提供了特设类.比如:向量(Vector).栈(Stack).字典(Dictionary).哈希表(Hashtable)这些类(数据结构)用来存储和操作对象组.虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题.集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.除了集合,该框架(framework)也定义了几个Map接口和类.Map里存储的是键/值对.尽管Map不是collections,但是它们完全整合在集合中. 所有的集合框架都包含如下内容:…
类似于HashMap和HashSet之间的关系,HashSet底层依赖于HashMap实现,TreeSet底层则采用一个NavigableMap来保存TreeSet集合的元素.但实际上,由于NavigableMap只是一个接口,因此底层依然是使用TreeMap来包含Set集合中的所有元素. 下面是TreeSet类的部分源代码 public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>…
# 原创,转载请先留言 1.集合的由来 数组的长度是固定的,当需要增加或减少元素时需要对数组重新定义,太麻烦了.java内部给我们提供了集合类,能存储任意对象,长度可以改变的,随着元素的增加而增加,随着元素的减少而减少. 2.数组和集合的区别 (1)数组既可以存储基本数据类型,又可以存储引用数据类型(存储基本数据类型时存储的是值,存储引用数据类型的是地址值).集合只能存储引用数据类型,但是实际用的时候可以存储基本数据类型,为什么呢?(是因为在存储的时候进行了自动装箱,例如 int 自动装箱为in…