Java集合(容器)的总结!

来源:互联网 发布:基本网络知识 编辑:程序博客网 时间:2024/06/06 03:50

集合(容器):包含的都是接口:

 

Collection接口:存储一组不唯一,无序的对象。

List接口:存储一组不唯一,有序(插入顺序)的对象。

Set接口:存储一组唯一,无序的对象。

Map接口:存储一组键值对,提供key-value的映射。

集合作为容器具有增、删、改、查的功能。

增:add();添加,存储对象。    size();容器中元素的实际个数。

remove();clear();removeAllCollection<> c;retainsAll(Object obj); 删除

contains(Object obj)isEmpty();判断元素   iterator();遍历元素

对于集合的遍历(三种方法):for循环遍历,foreach遍历,迭代器遍历。(hastnext();下一个,next()本身)。

 

ArrayList:实现了了长度可变的数组。

-优点:遍历元素和随机访问的效率比较高。

-缺点:添加和删除元素需要大量移动元素,效率低,按照内容查询效率低。

 

LinkedList:采用链表存储方式。

-优点:插入、删除元素时效率比较高。

-缺点:遍历和随机访问元素效率低。

特有的方法:offerFirst(); offerLast();添加头/尾。

PollFirst(); pollLast();删除头/尾。

peekFrist(); peekLast();获取头/

 

Set接口:

Set接口存储一组唯一,无序的对象(存入和取出的顺序不一定一致),操作数据的方法与List类似,但是set接口中不存在get方法。

HashSet:采用Hsahtable哈希表存储结构。

-优点:添加速度快,查询速度快,删除速度快。

-缺点:无序。

-LinkedHashSet: 采用哈希表存储结构,同时使用链表维护次序,有序(添加顺序)。

TreeSet:采用二叉树(红黑树)的存储结构。

-优点:有序(排序后的升序)查询速度比List快(按照内容查询)。

-缺点:查询速度没有HashSet快。

Set集合因为是唯一的,所以会剔除重复元素,如果是引用数据类型需要重写hashcodeequals方法。

TreeSet集合要求你提供排序规则,因此需要实现比较接口ComparableComparaTo方法。

Set相对于List没有下标,所以没有get()方法,不能使用普通的for循环取值。(foreachiterator)。

<泛型>:不特指哪一种类型,你定义什么类型就是什么类型。

 

package cn.bjsxt.demo;public class Point2<T> {//此处可以随便写标识符号,T是type的简称,也可以写a,b,cprivate T var;//var的类型由T指写,由外部指定public T getVar() {//返回值的类型由外部指定return var;}public void setVar(T var) {//参数的类型由外部指定this.var = var;}

Map接口:

HashMapKey无序,唯一,value无序,不唯一。

LinkedHashMap:有序的HashMap速度快。

TreeMap:有序,速度没有hash块。

添加:put() 删除:clear(); remove() 

判断:containsKey();判断key是否存在。ContainsValue();判断value是否存在。

遍历:get(key);  values();返回一个集合包括所有value值。

Keyset();返回所有key值。Entryset();返回包括映射的关系图。

 

CollectionsCollection不同,前者是集合的操作类,后者是集合的接口。

Collections提供的静态方法:

AddAll();批量添加     sort();排序     binarySearch();二分法查找    fill();替换

shuffle(); 随机排序  reverse();倒序排序。

                                                 
原创粉丝点击