Java的容器类库

来源:互联网 发布:menevit副作用知乎 编辑:程序博客网 时间:2024/06/05 17:39

1、Java的容器类库主要有两种类型:collection和map

* collection和Map的主要去区别在于:容器内的每一个“槽”所存储的元素个数不同。

* collection类型中,每个“槽”只有一个元素,Map类型中,持有Key-value关联(key叫作键,value叫作值)像一个小型数据库。

* 所有的Java容器类都可以自动调整自己的尺寸。

2、各自的旗下的子类关系

2.1 Collection的子类如下:

——List:将以特定次序存储元素,所以取出来的顺序可能和放入顺序不同。

——ArrayLIst:擅长随机访问元素,但在List中间插入,删除,移动元素比较慢。

——LinkedList:插入,删除,移动元素方便,但是随机访问差。

——Vector

——Set:每个值只能保存一个对象,不能含有重复元素

——hashSet:使用散列函数

——TreeSet:使用红黑树

——LinkedHashSet:使用链表结合散列函数

——Queue:先进先出的容器

——PriorityQueue

2.2 Map的子类:

——HashMap

——TreeMap

——HashTable

3、其他特征

(1)List、Set、Map将所有对象一律视为Object类型。

(2)Collection、List、Set、Map都是接口,不能实例化。继承自他们的ArrayList等都是具体的class,这些才可以被实例化。

(3)Vector容器确切的知道它所持有的对象隶属什么类别。Vector不能进行边界检查。

4、Collection是针对集合类的一个帮助类,它提供了一些静态的方法实现对各种集合的的搜索,排序,线程完全化等操作。

如Collection.sort(List list);

5、如何选择容器类

(1)容器类和Array的区别、择取

容器类仅能持有对象引用(指向对象的指针),而不是将对象信息复制一份至数列中的某一位置。一旦将对象置入容器内,便损失对象的类别信息。

(2)

* 在各种List中,最好的做法是以ArrayLIst作为默认选择

* 当插入、删除频繁的时候。使用LinkedList;

* Vector总比ArrayList慢。

* 在各种Set中,HashSet通常优于HashTree(插入、查找)

* 只有当需要产生一个经过排序的序列时,才用TreeSet。HashTree的意义是用来维护其内元素的排列状态

* 在各种Map中,HashMap用于快速查找。

* 当元素的个数固定时,最好使用Array,因为Array的效率是最高的。


——摘自《Java程序员面试宝典》



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 学车脑子不好使怎么办 生完二胎脑子不好使怎么办 羽毛球鞋买小了怎么办 羽毛球鞋买大了怎么办 感觉自己脑子越来越笨了怎么办? 生完孩子后身体素质差怎么办 胃口太好越来越胖怎么办 心情一紧张心跳手抖怎么办 消防兵新兵连俯卧撑不够怎么办 cf枪王永久禁赛怎么办 换了手机号花呗怎么办 xp系统无限重启怎么办 魔域配置资源读取错误怎么办 魔域异地交易了怎么办 魔域手游宝宝亲密度不够怎么办 魔域手游怎么改密码忘了怎么办 魔域装备注灵怎么办 lol外服账号忘记了怎么办 美服lol下载慢怎么办 台服天堂2延迟怎么办 梦幻专用瑞兽没有泰山怎么办 冲错了游戏点券怎么办 新手玩联盟很菜怎么办 cf玩一会儿卡退怎么办 魔域先锋区封号了怎么办 吃了减肥药头疼怎么办 冬天没用完的霜怎么办 手表带起来大了怎么办 碰到舞警打人该怎么办 合租者偷了东西却没有证据怎么办 钥匙锁在房间了怎么办 家里门钥匙丢了怎么办 合租朝北晒衣服怎么办 卧室门钥匙丢了怎么办 邻居在我家防盗窗上凉被子怎么办 有钥匙打不开门怎么办 白色腈纶衣服洗完发黄怎么办 在部队有人整你怎么办 老公掉粪坑了你怎么办图片 好久没跑步腿疼怎么办 跑1000米要5分钟怎么办