您的位置:首页 > 编程语言 > Java开发

java集合

2012-05-08 18:04 381 查看
在计算机科学中:数据结构和算法,需要花费大量的时间和精力。

 

集合体系:见java必备的截图

   一、集合接口   详见API文档。

     

《一》Collection

   

    1、Collection接口

      java库中用于集合类的基本接口就是他 ,他的常见方法:boolean add(Object obj);Iterator iterator();

       

   注意:各个方法的参数,

             其中的iterator()返回的是一个Iterator接口的对象,这个对象实现了Iterator接口仅有的三个方法,

             然后这个对象就可以使用这三个方法。             

   

     2、Iterator接口 

        又被称为迭代器。仅有三个方法:Object next(); boolean hasNext();void remove();

        注意:每一种数据结构的存储方式不同,遍历的方法也不同,每一种数据结构都有各自的iterator()的具体实现,

              每种数据结构的存储不同,但是都有一样的 判断和 取出的 动作,将这些动作封装之后就是iterator(),

              iterator()是对外提供的方法,具体的实现都是通过各自的内部类实现的。可以见源代码中的具体内部类。

       

     3、ArrayList:底层的数据结果是数组结构,特点:查询速度快,增删慢;线程不同步;

       

        LinkList:底层的数据结构是链表,特点:增删快,查询慢;它其中的方法注意查询;

       

        Vectory:和ArryList一样,Vectory出现在1.0。线程同步;被ArryList替代。

                枚举是它的特有的取出方式,被迭代器取代。

     

    4、HashSet: 底层数据结构是哈希表;自定义对象的时候,注意hashCode()和equals(),要复写,因为自带的方法返回的都是不同的哈希地址,

                就失去意义了,简单地说就是自定义对象的时候,要求返回的哈希值相同。对于相同对象,hashCode方法返回的哈希值一样,

                紧接着会调用equals方法比较对象的内容是否一样,一样就不存。线程不同步。

             

                自动调用hashCode()和equals()。

      

      TreeSet: 可以对集合中的对象排序,按照字典顺序排序,往里面存的对象是要排序的,要求对象首先具有可比较性,必须继承Comparable接口,

               该接口强制对象的类具有比较性,然后覆盖接口的方法compareTo(),自定义排序方法。具体的查看API中Comparable接口。

               还有一种比较方法,就是自定义的定义,当对象不具有比较功能的时候,改变构造方法。

 

               底层的数据结构是:二叉树,元素多的话,二叉树会取折中值,默认从小到大取值;二叉树在存数据的时候,依据于compareTo()的返回结果;

              自动调用compareTo()。java很多的类已经是实现了compareTo(),都有比较性并且有特有的比较方法。

《二》、Map

  

      1、Hsahtable:底层是实现哈希表,不可以存入null值和null键;线程同步。jdk1.0

      2、Hashmap:底层是实现哈希表,允许null值和null键;线程不同步。 效率高,jdk1.2

      3、Treemap:底层的数据结构是:二叉树,线程不同步,可以给map集合中的键值排序。

                 和Set很像,其实set集合底层使用的是map

 

《三》、集合框架工具类

  

        集合中涉及许多数据结构的细节,集合框架提供了许多方法,屏蔽了数据结构底层的操作,是操作集合类变得简单,但是建议看看每个

        工具类的具体方法的实现的源码。对数据结构,有会有认识。

 

        Collections 类

               

                 对集合进行操作的类;参照API的方法集。

       Arrys类

            

                对集合进行操作的类

     迭代器支持所有的Collection集合,不支持Map集合,高级for循环支持含有迭代器的集合和数组。Map集合可以变通地使用高级for遍历。

               

      

 二、比较

   

     

 接口 Comparable<T> 是java.lang 中的接口,只有一个方法compareTo();

                           此接口强行对实现它的每个类的对象进行整体排序。

                           这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。

       

 接口 Comparator<T> 是java.util 中的接口,有两个方法compare()和equals();

                           强行对某个对象 collection 进行整体排序 的比较函数。

    

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息