• java集合系列(1)总体框架


    此文章转载于Java的架构师技术栈微信公众号

     

    在平时写代码的时候,我们经常会使用到java的一些集合类,还记得我在刚刚学习的时候,因为这些集合类太多,没有把他们的特点还有使用场景记清楚,所以在使用的时候对软件的性能造成了很大的影响,因此现在我想把这些集合类进行一个详细的整理,方便别人面试或者是初学者理解其概念。

    这篇文章的大体结构如下:

    1、对java集合框架一个整体的认识和了解

    2、通过继承关系图认识集合的整体框架

    3、提前给出各个集合类的使用场景等

    一、集合框架的认识

    对于集合框架的认识,为了防止时间久,而印象变得模糊,所以我自己是这样记得,这个方法以供参考吧,假定给定一个集合类,可以把他当成一个人,首先记住从哪里来(继承关系),然后有什么本事(底层的数据结构决定了特点),最后到哪里去(使用场景)。

    根据上述的思路,先看一下来源(在这里先不说继承关系),Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*

    有什么本事呢?Java集合主要有4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)。

    使用场景呢?一句话,每一个容器(集合类)能盛不同的液体(数据)。所以容器的功能不同使用场景不同。

    二、java集合类框架

    为了清晰的认识,来张图。

    太多了,是不是有点乱,别着急,现在把他们捋一捋分个类就清晰了。

    先抓住它的主干,即Iterator、Collection和Map。(虚框线是接口,实框线是类)

    1、 Collection

    包含了集的基本操作和属性高度抽象接口

     Collection包含了List和Set两大分支。  (1) List是一个有序的队列,实现类有4个:LinkedList, ArrayList, Vector, Stack。

     (2) Set是一个不允许有重复元素的集合。实现类有3个:TreeSet、HastSet、LinkHastSet。

    2、 Map

    一个映射接口,即key-value键值对

      (1)AbstractMap是个抽象类,它实现了Map接口中的大部分API。实现类有6个:TreeMap、HashMap、LinkHashMap、IdentityHashMap、WeakHashMap、HashTable  (2)SortedMap 是继承于Map的接口。内容是排序的键值对,通过比较器(Comparator)

    3、Iterator。

    它是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。

     

    三、集合总体框架的各个类的使用场景

    为了描述方便,我觉得还是图比较直观

    具体的,可以先有个印象,等把所有的集合类学完了之后,再来看这个印象会比较深刻一点。

  • 相关阅读:
    一道模拟赛题
    Codechef Union on Tree
    BZOJ3435: [Wc2014]紫荆花之恋
    BZOJ3924: [Zjoi2015]幻想乡战略游戏
    BZOJ4372: 烁烁的游戏
    BZOJ3730: 震波
    BZOJ4317: Atm的树+2051+2117
    [六省联考2017]相逢是问候(扩展欧拉定理+预处理幂)
    「BJOI2018」治疗之雨(概率+高斯消元转递推)
    「BJOI2018」链上二次求和(线段树)
  • 原文地址:https://www.cnblogs.com/lusaisai/p/12385996.html
Copyright © 2020-2023  润新知