集合的体系结构:
    |--Collection(单列集合的根接口)
        |--List(子接口):元素是有序的,元素可以重复。因为该集合体系有索引。
            |--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。
                |--因为底层采用数组的数据结构,而数组中的元素在堆内存中是连续分配的,而且有索引,所以查询快,增删稍慢
                |--在使用迭代器遍历元素时,不能再使用集合的方法操作集合中的元素
                |--调用集合的contains()或remove()方法时底层会调用equals方法,如果存入集合的对象没有实现equals(),则调用Object的equals()方法
            |--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
            |--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。
        |--Set(子接口):元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
            |--HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
                |--HashSet是如何保证元素唯一性的呢?
                    |--是通过元素的两个方法,hashCode和equals来完成。
|--如果元素的HashCode值相同,才会判断equals是否为true。
|--如果元素的hashcode值不同,不会调用equals。
|--注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。
|--LinkedHashSet
                |--TreeSet:可以对Set集合中的元素进行排序。
                    |--底层数据结构是二叉树。 保证元素唯一性的依据:compareTo方法return 0.
                    |--TreeSet排序的第一种方式:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。
                        这种方式也成为元素的自然顺序,或者叫做默认顺序。
                    |--TreeSet的第二种排序方式。当元素自身不具备比较性时,或者具备的比较性不是所需要的。
                        这时就需要让集合自身具备比较性。在集合初始化时,就有了比较方式。
                        创建一个比较器(实现Comparator接口,重写compare方法),在创建TreeSet集合时将比较器传递给集合.
    |--Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
        |--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
        |--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
        |--TreeMap:底层是二叉树数据结构。不同步。可以用于给map集合中的进行键排序。
        |--和Set很像。其实,Set底层就是使用了Map集合
            |--map集合的两种取出方式:
                |--Set<k> keySet:将map中所有的键存入到Set集合。因为set具备迭代器。
                    所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。
                    Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。
                |--Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.Entry
                    Entry其实就是Map中的一个static内部接口。
                    为什么要定义在内部呢?
                    因为只有有了Map集合,有了键值对,才会有键值的映射关系。
                    关系属于Map集合中的一个内部事物。而且该事物在直接访问Map集合中的元素

Java中集合框架体系的更多相关文章

  1. java集合类-集合框架体系

    集合框架体系 集合框架体系是由Collection.Map和 Iterator(迭代器) 实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 Collection体系 Set接口:元素无序且不 ...

  2. 十五、Java基础---------集合框架体系以及List

    在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可 ...

  3. java中集合框架

    java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型. 在很大程度上,一旦您理解了接口,您就理解了框架.虽然您总要创建接 ...

  4. Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现

    (一)集合框架: Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(实现接口的类).所有抽象出来的数据结构和操作(算法)统称为集合框架. 程序员在具体应用的时候,不必考虑数据结构和 ...

  5. Java中集合的概述

    一.集合和数组的区别 1.数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 2.集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数 ...

  6. Java集合框架体系JCF

    Java 集合框架体系作为Java 中十分重要的一环, 在我们的日常开发中扮演者十分重要的角色, 那么什么是Java集合框架体系呢? 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一 ...

  7. Java 集合框架体系总览

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 「CS-Wiki」Gitee ...

  8. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  9. java.util 集合框架集合

    java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...

随机推荐

  1. iOS基础 - 触摸事件与手势识别

    一.iOS的输入事件 UIKit可识别三种类型的输入事件: 触摸事件 运动(加速计)事件 远程控制事件 二.UIEvent iOS中许多事件对象都是UIEvent类的实例,记录事件产生的时刻和类型 U ...

  2. iOS基础 - UITableViewController

    1. 继承UITableViewController默认会设置数据源和代理,并且会自动遵守数据源和代理协议,并且self.tableView 相当于 self.view 2.更换控制器时,注意把sto ...

  3. Jquery框架

    现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度.但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说 ...

  4. Spring in action (1)

      spring中注入bean的方法: 1.通过xml文件来注入bean. 2.通过java注解来注入 默认的bean生命周期是单例的.每次都会返回相同的类的实例.

  5. go语言defer使用

    defer Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句.当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回.特别是当你在进行一些打开资源 ...

  6. <c:if>判断两个<c:forEach>里的数据是否相等

    问题:两个<c:forEach>嵌套,里面循环的值和外面的值进行比较(里层里的PARENTID是否等于外层的ID),如果相等就显示. <c:forEach items="$ ...

  7. IP选路

    IP选路 1.概述      路由算法是用于获取路由表中的路由项目.它是路由选择协议的核心. 2.路由算法的分类      从路由算法能否随网络的通信量或拓扑自适应的进行调整变化来分,可以分为两类. ...

  8. TOGAF架构开发方法(ADM)之需求管理阶段

    TOGAF架构开发方法(ADM)之需求管理阶段 1.11 需求管理(Requirements Management) 企业架构开发方法各阶段——需求管理 1.11.1 目标 本阶段的目标是定义一个过程 ...

  9. app wap开发mobile隐藏地址栏的js

    function scrolltol (){ setTimeout ( function () { , ) }, ); } window . onload = function () { if ( d ...

  10. Dubbo源码学习--服务是如何发布的

    相关文章: Dubbo源码学习--服务是如何发布的 Dubbo源码学习--服务是如何引用的 ServiceBean ServiceBean 实现ApplicationListener接口监听Conte ...