Java 集合ListSet

来源:互联网 发布:如何做数据迁移 编辑:程序博客网 时间:2024/05/18 08:52

                                                             集合

   由于数组的元素个数是固定的,而动态数组比较麻烦,

容器类型太少    

②另一个重大失误是竟然没有对容器进行排序的工具。

  所以,,,,,,有了                     集合!!!!!!

 

   集合框架的接口和类在Java.util包中。

   集合框架(Java Collections Framwork)是为表示和操作集合而规定的一种统一的标准的体系结构。

<1>.新设计的类统一标准

    统一继承三大接口  Iterator   Collection   Map

    然后Collection分为俩大子接口   list  set

<2>.旧的容器的兼容



  CollectionIterator  接口

  Collection:层次结构中的根接口。Collection表示一组对象,这些对象也成为Collection的元素。一些Collection允许有重复的元素(list集合有序),而另一些则不允许重复(set集合无序)。JDK不提供此接口的任何直接实现,他提供更具体的子接口(list,set)实现,此接口通常用来传递collection,并在需要最大普通性的地方操作这些collection.

    接口的定义:

    public interface Collection<E>  extends  Iterable<E>

Collection接口支持的操作;

    --添加元素:add             --迭代所有元素:iterator

    --移除元素   remove        --获取存储的元素总数:size

    --清空集合:clear            --是否包含某个元素:contains

    --是否是空集合:isEmpity      ---转换成传统的数组类型:toArray

    很多情况下 ,我们需要把集合的内容进行输出,也就是遍历集合。

    遍历集合的方式有一下几种:

1.Iterator  <hasNext()    Next()> 2.ListIterator  3.Enumeration  4.foreach

    List接口

    有序的Collection,此接口的用户可以对列表中每个元素的插入位置进行精确的控制,用户可以根据元素的整数的索引(在列表中的位置)访问元素,并搜索列表中的元素。

   List接口的实现类

  ① ArrayList:动态数组

  ② Vector:动态数组,从JDK1.0就有的类,从JDK1.2之后改为List接口的实现类

  ③ LinkedList:双向链表

  List接口是Collection接口的子接口,和数组最像的一种集合形式,支持重复元素,(实现类:ArrayList)允许包括null在内的所有元素,还提供了一些方法来操作内部用来存储列表的数组的大小。

   ArrayList  和  Vector的区别

   相同点:在底层都是通过数组方式实现,初始化默认是10个元素的数组。

                  根据下标索引(index)访问元素。

                  可以按照某种算法扩展容量。

   不同点:

            vector当容量不够时,翻倍增加容量,而ArrayList不够时则增加原来的一半。

            vector线程安全的,ArrayList线程不安全。

            vector性能比ArrayList低。

 Set接口:            不允许有重复元素

  实现类:

        Hashset:按照哈希算法来获取集合中的对象

        TreeSet:有序的对象集