深入JDK源码之集合类图

在此输入图片描述 ##List:add/remove/get/set## ArrayList:其实就是数组,容量一大,频繁增删就是噩梦,适合随机查找; LinkedList:增加了push/[pop|remove|pull],好啰嗦,其实都是removeFirst; Vector:历史遗留产物,同步版的ArrayList,名字起的奇奇怪怪,代码和ArrayList太像; Stack:继承自Vector。Java里其实没有纯粹的Stack,自己实现一个吧,用组合的方式,封装一下LinkedList即可; Queue:为什么归到这里呢?本来是单独的一类,不过在SUN的JDK里就是用LinkedList来提供这个功能的,主要方法是offer/pull/peek; ##Set:add/remove## HashSet:没啥好说的,内部采用HashMap实现的; LinkedHashSet:同上,采用LinkedHashMap实现; TreeSet:TreeMap; ##Map:put/get/remove## HashMap/HashTable:散列表,啥都不说了,和ArrayList一样采用数组实现,超过初始容量会对性能有损耗; LinkedHashMap:这个类有点意思,继承自HashMap,但通过重写嵌套类HashMap.Entry实现了链表结构,同样有容量的问题; Properties:没错,这玩意是继承的HashTable;

转载于:https://my.oschina.net/xianggao/blog/385732

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值