Bryan Wong

来源:互联网 发布:java实时游戏服务器 编辑:程序博客网 时间:2024/06/02 07:30

======================================================
注:本文源代码点此下载
======================================================

java的集合类关系图:

list:add/remove/get/set。

1,arraylist:其实就是数组,容量一大,频繁增删就是噩梦,适合随机查找;

2,linkedlist:增加了push/[pop|remove|pull],好啰嗦,其实都是removefirst;

3,vector:历史遗留产物,同步版的arraylist,名字起的奇奇怪怪,代码和arraylist太像;

4,stack:继承自vector。java里其实没有纯粹的stack,自己实现一个吧,用组合的方式,封装一下linkedlist即可;

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

set:add/remove。get和set呢?抱歉欠奉,可以用迭代器或者转换成list。

1,hashset:没啥好说的,内部采用hashmap实现的;

2,linkedhashset:同上,采用linkedhashmap实现;

3,treeset:treemap。

map:put/get/remove。

1,hashmap/hashtable:散列表,啥都不说了,和arraylist一样采用数组实现,超过初始容量会对性能有损耗;

2,linkedhashmap:这个类有点意思,继承自hashmap,但通过重写嵌套类hashmap.entry实现了链表结构,同样有容量的问题;

3,properties:没错,这玩意是继承的hashtable。

顺便818坑爹的arrays.aslist,这个方法的实现依赖一个嵌套类,这个嵌套类竟然也叫arraylist!太坑爹了。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击