java 集合框架

集合出现的原因:

     1.存放数量不确定的数据;

     2.存放有映射关系的数据;

     3.存放多种不同类型的数据(但当不使用泛型时,集合会“忘记”被扔进数据的类型,全都被当做Object对象来处理)。

      集合只保存对象(实际上是保存对象的引用变量),而数组即可以保存对象,也可以保存基本类型的值,但是java支持自动装箱,即在集合直接存放基本类型数据时,自动将其转成对应对象。

                                                                                   集合框架的两个根借口为Collection和Map

使用技巧

需要唯一用Set
       且需要指定顺序:TreeSet    TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
           不需要:HashSet HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
           
       得到与存储一致的顺序:LinkedHashSet 
        不需要唯一用List
       需要频繁增删动作用:LinkedList
       不需要:ArrayList 
          

如果涉及到堆栈、队列等操作,应该考虑用List;List的特征是其元素以线性方式存储,集合中可以存放重复对象。

对于需要快速插入,删除元素,应该使用LinkedList;在实现中采用链表数据结构。插入和删除速度快,访问速度慢。

如果需要快速随机访问元素,应该使用ArrayList。代表长度可以改变得数组。可以对元素进行随机的访问,插入与删除元素的速度慢。

如果程序在单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步的类,其效率较高。

如果多个线程可能同时操作一个类,应该使用同步的类。 要特别注意对哈希表的操作,作为key的对象要正确复写equals和hashCode方法。 尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变,这就是针对抽象编程。

 

posted @ 2017-08-29 21:35  KIDong123  阅读(122)  评论(0编辑  收藏  举报