zoukankan      html  css  js  c++  java
  • java集合类-总纲

    Java集合类存放于 java.util 包中,是一个用来存放对象的容器。

    注意:①、集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类型都有对应的引用类型。

       ②、集合存放的是多个对象的引用,对象本身还是放在堆内存中。

       ③、集合可以存放不同类型,不限数量的数据类型。

    在这里,集合类分为了Map和Collection两个大的类别。

    处于图片左上角的那一块灰色里面的四个类(Dictionary、HashTable、Vector、Stack)都是线程安全的,可是它们都是JDK的老的遗留类。如今基本都不怎么使用了,都有了相应的取代类。当中Map是用来取代图片中左上角的那个Dictionary抽象类(Map的官方文档里面有说明)。

    官方推荐使用Map接口来取代它。相同对于HashTable。官方推荐ConcurrentHashMap来取代。接着以下的Vector是List以下的一个实现类。

    接着最上面的粉红色部分是集合类全部接口关系图。

    当中Map的结构比較简单,而Collection的结构就相对复杂一些。Collection有三个继承接口:List、Queue和Set。

    接下来的绿色部分则是集合类的主要实现类了。

    这也是我们最常常使用的集合类了。

    依照实现接口分类:

    实现Map接口的有:EnumMap、IdentityHashMap、HashMap、LinkedHashMap、WeakHashMap、TreeMap

    实现List接口的有:ArrayList、LinkedList

    实现Set接口的有:HashSet、LinkedHashSet、TreeSet

    实现Queue接口的有:PriorityQueue、LinkedList、ArrayQueue

    依据底层实现的数据结构分类:

    底层以数组的形式实现:EnumMap、ArrayList、ArrayQueue
    底层以链表的形式实现:LinkedHashSet、LinkedList、LinkedHashMap
    底层以hash table的形式实现:HashMap、HashSet、LinkedHashMap、LinkedHashSet、WeakHashMap、IdentityHashMap
    底层以红黑树的形式实现:TreeMap、TreeSet
    底层以二叉堆的形式实现:PriorityQueue

    最下方的一个整块都是java.util.concurrent包里面的类,依照包名我们就能够知道这个包里面的类都是用来处理Java编程中各种并发场景的。

    下篇将介绍各常用实现类的区别和联系

  • 相关阅读:
    Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)
    IBinder对象在进程间传递的形式(一)
    【代码实现】PHP生成各种随机验证码
    win8 metro 调用摄像头拍摄照片并将照片保存在对应的位置
    薏米红豆粥功效及做法介绍
    应用程序无法正常启动0xc0150002 解决方式
    贪心算法
    Linux 进程通信之 ——信号和信号量总结
    关于 ioctl 的 FIONREAD 參数
    google域名邮箱申请 gmail域名邮箱申请(企业应用套件)指南
  • 原文地址:https://www.cnblogs.com/xianlai-huang/p/9821814.html
Copyright © 2011-2022 走看看