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. linux 中 ‘|’的作用

    利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入.连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入 ...

  2. 方便mac os 10.9系统中phpstorm配置php运行环境

    自己安装php,不用mac安装,这样就有php开发环境了. 安装很简单,直接运行一个命令, 需要几分钟,请慢慢等待. curl -s http://php-osx.liip.ch/install.sh ...

  3. 不建议使用NSUserDefault存储大量数据

    NSUserDefaults 其实是一个 plist 文件(有待验证),即使只是修改一个 key 都会 load 整个文件,不适合存储大量数据. NSUserDefaults是保存成文本格式的,容易被 ...

  4. 关于回波损耗 和 驻波比的摘要 Return Loss and VSWR

    关于回波损耗 和 驻波比的摘要 以下摘自:http://www.soontai.com/cal_rtvswr.html RL = 20log((VSWR+1) / (VSWR-1)) VSWR = ( ...

  5. capitalize()在Python中含义

    Python为string对象提供了转换大小写的方法:upper() 和 lower(). 还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法, 以及所有单词首字 ...

  6. socket.io

    http://www.cnblogs.com/fullhouse/archive/2011/07/18/2109936.html http://www.cnblogs.com/fullhouse/ar ...

  7. 靓号正则表达式(前后向查找等) 和 apache正则包使用

    一般公司在开发一类对的号码时,会预留一些号码给以后升级的会员使用,比如旺旺靓号,QQ号等,采用正则表达式实现较好,通过规则引擎的后台页面做成实时可配置的也是不错的选择. 一. 一般会有如下的正则需求 ...

  8. Linq查询出结果集中重复数据

    private List<FMDS_FarmPlotNewInfo> GetSame(List<FMDS_FarmPlotNewInfo> lst) { List<FMD ...

  9. 有关ARM大小端及网络字节序

    http://blog.sina.com.cn/s/blog_62b250b50101ntjs.html

  10. C++实现一个限制对象实例个数的类

    http://www.cnblogs.com/absolute8511/archive/2009/03/02/1649603.html