Java的容器类库

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值