Java的集合类关系图,摘自网络:

List:

1,ArrayList:内部采用数组存储结构;随机查找效率高,增删效率低;线程不安全;

2,LinkedList:内部采用链表存储结构;增删效率高,查找效率低;线程不安全;

3,Vector:与ArrayList没啥区别,源码也和ArrayList实现类似;自带同步,线程安全;

4,Stack:继承自Vector;提供push,pop方法,先进后出;线程安全;

5,Queue:为什么归到这里呢?本来是单独的一类,不过在SUN的JDK里就是用LinkedList来提供这个功能的,主要方法是offer/pull/peek。

Set:add/remove。

1,HashSet:内部采用HashMap实现的;线程不安全;

2,LinkedHashSet:内部采用LinkedHashMap实现;线程不安全;

3,TreeSet:内部采用TreeMap实现;线程不安全;

Map:put/get/remove。

1,HashMap:依据hash表,内部用数组和链表实现;线程不安全;

2,HashTable:依据hash表,内部用数组和链表实现;自带同步,线程安全;

3,ConcurrentHashMap:由于HashMap没有实现同步,执行效率比HashTable高;而HashTable自带同步,当表很大时,执行效率就会很低,ConcurrentHashMap综合了

HashMap和HashTable的优点:实现了线程同步,而且是用分桶的做法,将元素划分到一个个桶中,然后分别对每个桶加锁,这样,就能实现多个桶之间访问数据的并发,提

高了执行效率;线程安全;

4,LinkedHashMap:继承自HashMap,但在数组的基础上实现了链表功能,各个元素(节点)之间存在前后引用的关系,通过重写嵌套类HashMap.Entry实现了链表结构,

同样有容量的问题;

5,Properties:继承自HashTable。

6,WeekHashMap:用于在系统GC时的垃圾回收,可参考文章:java对象:强,软,弱和虚引用详解

后续继续追加。

Java集合类总结的更多相关文章

  1. Java集合类--温习笔记

    最近面试发现自己的知识框架有好多问题.明明脑子里知道这个知识点,流程原理也都明白,可就是说不好,不知道是自己表达技能没点,还是确实是自己基础有问题.不管了,再巩固下基础知识总是没错的,反正最近空闲时间 ...

  2. 做JavaWeb开发不知Java集合类不如归家种地

    Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...

  3. 【转载】Java集合类Array、List、Map区别和联系

    Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...

  4. 摘抄转载前辈们的Java集合类总结

    本文摘自 Blue Sky:http://www.cnblogs.com/hubcarl JAVA 集合类介绍和使用 类关系示意图Iterable(接口) │ └--Collection (接口) ├ ...

  5. Java集合类简单总结(重学)

    java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...

  6. Java集合类中的哈希总结

    JAVA集合类中的哈希总结 目 录 1.哈希表 2.Hashtable.HashMap.ConcurrentHashMap.LinkedHashMap.TreeMap区别 3.Hashtable.Ha ...

  7. Java集合类: Set、List、Map、Queue使用场景梳理

    本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E ...

  8. Java 集合类详解(含类图)

    0.参考文献 此图中蓝色为抽象类.深红色表示接口(Arrays除外).绿色表示具体容器类 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedLi ...

  9. Java集合类: Set、List、Map、Queue使用

    目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的 ...

  10. 基础知识《六》---Java集合类: Set、List、Map、Queue使用场景梳理

    本文转载自LittleHann 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E6%8E%92%E5%BA%8F% ...

随机推荐

  1. Git 的基本配置

    用户信息 你个人的用户名称和电子邮件地址,用户名可随意修改,git 用于记录是谁提交了更新,以及更新人的联系方式. $ git config --global user.name "Donl ...

  2. phpstorm配置Xdebug进行调试PHP教程

    运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...

  3. 006 Python的操作符

      算术操作符: +    -    *    /       %    **    // 如 >>> a = 5 >>> a = a + 3 >>&g ...

  4. 使用South时候由于两个相同id的文件引起的问题

    由于之前版本控制的一个小失误, 在主分子上面调用python manage.py makemigrations生成了 0058_auto__add_unique_setting_name_value. ...

  5. DataTable,DataSet,DataRow与DataView

    DataTable和DataSet可以看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器?原因是,这 ...

  6. MOS管应用之放反接电路

    一.典型电路 1.电路1 说明: GND-IN 为电源接口的负极 GND 为内部电路的公共地 原理分析 正向接: VCC-IN通过R1.R2.MOS体二极管,最后回到GND-IN;然后GS电压升高,紧 ...

  7. iphone 屏幕投射到Mac上

    在实际的工作中,我们往往需要演示iPhone上面的程序,但是由于手机屏幕太小,无法同时给很多人看,这时候就需要进行屏幕投射.目前我需要实现的是投射到Mac上.我使用有线USB和无线Airplay两种方 ...

  8. C# 网页自动填表自动登录(转)

    自动填表的方式有很多,关键是获取控件的id或者name. 比如源代码有 <input id="pwdInput" tabindex="2" class=& ...

  9. DM8168 编译filesystem步骤

    在板子跑起来之前,需要先编译好8168的文件系统.前提是已经设置好板子的类型等参数,详见<DM8168环境搭建> 1.进入<DVR_RDK_BASE>/dvr_rdk目录 ma ...

  10. Lua和Javascript差异对比

    Lua模拟器js方案 1.语法级模拟lua与js语言差异 1.1注释 js 为//,lua为--. 1.2变量js利用val来声明全局变量不存在局部变量,lua则不需要直接定位则为全局变量,local ...