黑马程序员——集合框架的使用



集合类的由来:

       对象用于封装特有数据,对象多了需要存储,如果对象个数不确定。就使用集合容器进行存储。

 

集合的特点:

  1. 用于存储对象的容器。

  2. 集合的长度是可变的。

  3. 集合中不可以存储基本数据类型值。

     

    集合容器因为内部的数据结构不同,有多种具体容器。不断的向上抽取,就形成了集合框架。框架的顶层是Collection接口。

     

    Collection的常见方法:

  1. 添加。

    boolean  add (E e);

    boolean add(Collection coll);

  2. 删除。

    boolean remove(E e);

    boolean remove(Collection coll);

    void clear();

  3. 判断。

    boolean contains(E e);

    boolean containsAll(Collection coll);

    boolean isEmpty();

  4. 获取。

    int size();

    Iterator iterator();取出元素的方式:迭代器。

    该对象必须依赖于具体容器,因为每一个容器的数据结构都不同。所以该迭代器对象是在容器中进行内部实现的。对于使用容器者而言,具体的实现不重要,只要通过容器获取到该实现的迭代器的对象即可,也就是iterator方法。

     

    Iterator接口就是对所有的Collection容器进行元素取出的公共接口。

  5. 其它:

    boolean retainAll(Collection coll);取交集。

    Object[] toArray();将集合转成数组。

     

  1. List接口和Set接口

    List特点:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复。

    Set特点:元素不能重复,无序。

     

    List特有常见方法:有一个共性特点就是都可以操作角标。

  1. 添加

    void add(index,element);

    void add(index,collection);

  2. 删除

    Object remove(index);

  3. 修改

    Object set (index,element);

  4. 获取

    Object get(index);

    int indexOf(object);

    int lastIndexOf(object);

    List subList(form,to);

    在迭代器过程中,不要使用集合操作元素,容易出现异常。可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作。

     

    ListIterator可以实现在迭代过程中完成对元素的增删改查。注意:只有List集合具备该迭代功能。

     

     

    List接口常用子类:

  1. Vector:内部是数组的数据结构,是同步的。增删,查询都很慢。

  2. ArrayList:内部是数组的数据结构,是不同步的。查询的速度快。

  3. LinkedList:内部是链表数据结构,是不同步的。增删元素的速度非常快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值